SlideShare a Scribd company logo
1 of 62
Download to read offline
Dosen Pengampu :
TUGAS FOLIO
DATABASE
Diusulkan oleh:
Mokh Ikhwan 4111411030
Ulfinur Fatimah 4111411004
Dosen Pengampu :
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI SEMARANG
2013
Riza Arifudin, S.Pd., M.Cs.
1
BAB 1
KONSEP DASAR BASIS DATA
Basis data (atau database) adalah kumpulan informasi yang disimpan di
dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu
program komputer untuk memperoleh informasi dari basis data tersebut (A,
Pratama, 2013:1). Menurut di (http://database.rizaarifudin.info) Basis data juga
dapat didefinisikan sebagai sekumpulan data yang saling berhubungan, disimpan
dengan minimum redundansi untuk melayani banyak aplikasi secara optimal.
1.1 Sistem Basis Data
Sistem Manajemen Basis Data (SMBD) merupakan suatu perangkat lunak
yang terdiri atas sekumpulan program untuk mengelola dan memelihara data di
dalam suatu struktur yang digunakan oleh banyak aplikasi, bebas (independence)
terhadap media penyimpanan dan metoda akses. Sistem tersebut menyusun elemen
data di dalam struktur yang telah didefinisikan sebelumnya dan menyimpan relasi
diantara elemen data yang berbeda di dalam basis data.
Sebagai suatu perangkat lunak, SMBD merupakan sistem perangkat lunak dengan
penggunaan yang bersifat umum (general-purposed) yang memfasilitasi proses
pendefinisian, konstruksi, dan manipulasi basis data untuk berbagai aplikasi.
Basis data dan perangkat lunak merupakan bagian dari sistem basis data,
yang secara ringkas dapat dikatakan merupakan sistem penyimpanan record yang
terkomputerisasi. Penyederhanaan sistem basis data digambarkan sebagai berikut:
Program Aplikasi Pengguna
Basis Data
Sistem Manajemen Basis Data
Gambar 1.2 Penyederhanaan Sistem Basis Data
2
Sistem basis data terdiri atas empat komponen, yaitu:
a. Data:
Sebagaimana telah dijelaskan sebelumnya, data untuk suatu basis data mempunyai
karakteristik terintegrasi dan pemakaian bersama. Pada aplikasi yang relatip besar
data cenderung digunakan oleh sistem multi-user, sedangkan pada aplikasi relatip
kecil data cenderung digunakan oleh sistem single-user.
Sistem multi-user ialah suatu sistem yang memungkinkan banyak pengguna (user)
dapat mengakses basis data secara berbarengan (concurrent). Sistem single-user
ialah suatu sistem dengan paling banyak satu pengguna dapat mengakses basis data
pada sembarang waktu yang diberikan.
b. Perangkat keras:
Terdiri atas peralatan utama berupa penyimpanan bantu dan peralatan
Input/Output (I/O), processor dan memory utama, serta peralatan pendukung
(misalnya untuk peralatan jaringan atau peralatan komunikasi yang lain).
c. Perangkat Lunak:
Sebagaimana telah disebutkan sebelumnya, perangkat lunak untuk sistem basis
data disebut SMBD, yang merupakan lapisan diantara basis data secara phisik
dengan pemakai. Fungsi utama dari SMBD ialah untuk menjadi perisai bagi
pengguna dari rincian perangkat keras, sehingga pengguna dengan pengetahuan
minimum mengenai perangkat keras dapat menggunakan sistem basis data dengan
mudah.
d. Pengguna:
Terdapat 3 macam pengguna sistem basis data, ialah:
 Pemrogram aplikasi, yaitu yang bertanggung jawab menulis program aplikasi
yang menggunakan basis data.
 Pengguna akhir, yaitu pengguna yang berinteraksi dengan sistem basis data
secara on-line melalui workstation atau terminal. Antarmuka banyak
digunakan untuk mempermudah interaksi. Sedang untuk pengguna tertentu
menggunakan fasilitas update data secara interaktif dengan bahasa query,
karena lebih luwes dalam memberikan fungsi yang tidak disediakan oleh
antarmuka. Bahasa query ialah bahasa standar yang digunakan untuk
mendefinisikan dan memanipulasi data di dalam basis data.
3
 Administrator Basis Data (Database Administrator), yaitu seseorang yang
menyusun strategi dan putusan kebijakan mengenai data, dan menyediakan
kebutuhan dukungan teknik untuk mengimplementasikan putusan yang dipilih.
Administrator basis data bertanggung jawab terhadap penggunaan kewenangan
akses ke basis data, mengkoordinasikan dan memantau penggunaan basis data,
dan untuk menyediakan sumber-sumber perangkat lunak dan perangkat keras
sesuai kebutuhan. Dengan demikian administrator basis data bertanggung
jawab untuk semua kontrol sistem pada tingkat teknik.
1.2 Keuntungan Pendekatan Basis Data
Di dalam pendekatan basis data, terdapat suatu tempat penyimpanan data tunggal
yang dikelola. Data tersebut didefinisikan sekali dan kemudian diakses oleh
bermacam pengguna dan aplikasi.
Pendekatan basis data memberikan sejumlah keunggulan potensial dibandingkan
dengan pemrosesan file tradisional. Keunggulan tersebut antara lain ialah:
a. Redundansi data minimum:
Redundansi yang merupakan cara penyimpanan data yang memunculkan
beberapa masalah sebagaimana telah dijelaskan pada bagian sebelumnya.
b. Konsistensi data:
Dengan menghilangkan atau mengontrol redundansi, dapat dipangkas
terjadinya inkonsistensi data. Jika diberlakukan redundansi yang terkontrol,
sistem basis data menjalankan konsistensi dengan mengupdate setiap data
yang dimiliki jika terjadi perubahan.
c. Integrasi data:
Di dalam suatu basis data, data disusun ke dalam suatu struktur logika tunggal,
dengan relasi logika yang didefinisikan diantara objek data yang
berhubungan.
d. Pemakaian data bersama:
Suatu basis data dimaksud untuk dipakai bersama oleh semua pengguna yang
diberi kewenangan.
e. Menjalankan pembakuan:
4
Dengan pendekatan basis data, terdapat otoritas untuk mendefinisikan dan
men-jalankan pembakuan data. Semua perubahan terhadap data, misalnya
nama data dan format, menjadi terkontrol.
f. Mempermudah pengembangan aplikasi:
Pendekatan basis data akan memangkas beaya dan waktu untuk
pengembangan aplikasi baru. Pemisahan deskripsi data dari program aplikasi
menyebabkan susunan data dapat diubah dan dikembangkan (dalam batas
tertentu) tanpa perlu mengubah program aplikasi yang memproses data
tersebut.
g. Menyediakan antarmuka banyak pengguna:
Karena bervariasinya pengguna, dengan tingkat pengetahuan teknis yang
berbeda, basis data menyediakan antarmuka pengguna yang bervariasi pula.
h. Menggambarkan relasi komplek diantara data:
Suatu basis data mungkin mengandung sejumlah keanekaragaman data yang
saling berhubungan di dalam banyak cara. Pendekatan basis data memberikan
kemampuan menggambarkan suatu keanekaragaman relasi yang komplek
diantara data dengan tetap memberikan kemudahan dan efisiensi di dalam
pencarian kembali dan update data yang berhubungan.
i. Menjalankan batasan keutuhan (integrity):
Banyak aplikasi basis data mempunyai batasan keutuhan tertentu yang
diberlakukan pada data. Suatu SMBD menyediakan kemampuan untuk
mendefinisikan dan menjalankan batasan tersebut.
j. Menyediakan backup dan pemulihan (recovery):
Suatu SMBD menyediakan fasilitas untuk backup dan pemulihan data dari
kerusakan perangkat keras, perangkat lunak, maupun kesalahan proses.
1.3 Resiko Pendekatan Basis Data
Sebagaimana putusan-putusan yang lain, pendekatan basis data bukanlah tanpa
risiko,
dan risiko-risiko tersebut harus dikenali untuk dapat ditangani. Pendekatan basis
data
membawa risiko-risiko sebagai berikut:
a. Spesialisasi baru:
5
Adopsi pendekatan basis data atau pembelian perangkat lunak SMBD memerlukan
SDM dengan spesialisasi yang baru. Untuk memenuhinya perlu mencari tenaga
baru atau dengan mengadakan pelatihan staf yang ada.
b. Perlunya beaya awal (start-up cost):
Beaya awal antara lain meliputi beaya untuk pengadaan perangkat keras,
perangkat lunak, dan pelatihan. Bahkan untuk aplikasi yang komplek berpotensi
memerlukan perangkat keras dan perangkat lunak dengan beaya yang relatip
mahal.
c. Perlunya konversi data:
Resiko ini muncul apabila data yang sudah ada sebelumnya diperlukan untuk basis
data (untuk kesinambungan proses), dan dengan sistem penyimpanan data
sebelumnya yang belum sesuai dengan keperluan basis data.
d. Perlunya backup:
Backup atau salinan file ke media penyimpanan yang tidak aktif, berguna di
dalam mengembalikan data yang rusak atau hilang, khususnya untuk data yang
penting jika terjadi kerusakan data. Perangkat lunak SMBD atau prosedur
tambahan dapat digu-nakan untuk keperluan tersebut.
e. Meningkatnya kompleksitas data:
Di dalam basis data terdapat puluhan bahkan ratusan file yang saling
terintegras. Pengelola file tersebut relatip komplek.
f. Data mudah diserang (vulnerable):
Dibandingkan dengan pemrosesan file tradisional, basis data lebih mengandung
kerawanan apabila terjadi masalah di dalam basis data, karena banyak aplikasi
secara bersamaan akan terganggu bahkan dapat menjadi lumpuh atau tidak dapat
berfungsi.
g. Gangguan dengan adanya data bersama:
Akses tumbukan untuk data bersama melalui beberapa program aplikasi dapat
menyebabkan timbulnya beberapa masalah.
h. Konflik organisasi:
Basis data melibatkan beberapa bagian di dalam suatu organisasi. Perlu suatu
konsensus untuk pendefinisian maupun “pemilikan” data. Tanpa konsensus
tersebut, tanggung jawab data, khususnya di dalam pemeliharaannya menjadi tidak
jelas.
6
Meskipun demikian, secara keseluruhan basis data memberikan pemecahan dalam
mengatasi makin meningkatnya kebutuhan akan informasi, makin meluasnya
aplikasi,
keterkaitan antar aplikasi, dan tuntutan pemakai akan layanan yang semakin cepat
dan mudah. Perkembangan teknologi komputer dan komunikasi yang sangat cepat
menawarkan kemampuan yang dapat dimanfaatkan basis data untuk meningkatkan
layanan pengolahan data.
BAB II
APLIKASI BASIS DATA
Basis data merupakan sumber daya yang berharga, karena dapat
digunakan untuk menghasilkan informasi. Pada kenyataannya basis data tidak
diakses secara langsung, akan tetapi dilakukan dengan menggunakan aplikasi.
Dengan kata lain aplikasi basis data merupakan pintu masuk ke dalam sumber
daya basis data.
2.1 Komponen Sistem Aplikasi Basis Data
a. Perangkat Keras, untuk menjalankan SMBD
b. Program, mendukung berbagai aplikasi basis data diperlukan perangkat
lunak berupa program komputer.
Program aplikasi dikelompokkan menjadi dua, ialah
- Program aplikasi yang dibuat dengan menggunakan bahasa
pemrograman baku seperti Pascal, Visual Basic, Visual Dephi, Visual
FoxPro dan lain-lain. Program tersebut mengakses SMBD melalui
pemanggilan sub-routine.
- Program aplikasi yang berisi program yang ditulis dengan menggunakan
bahasa yang dimiliki oleh produk SMBD, misalnya dengan bahasa
query/update yang interaktif. SMBD menyediakan fasilitas untuk
menyimpan urutan perintah query/update tersebut.
c. Data
Data untuk aplikasi basis data ialah basis data itu sendiri. Struktur dari
keseluruhan basis data disebut dengan schema atau conceptual view.
Bagian dari struktur basis data yang diproses oleh suatu aplikasi disebut dengan
7
sub schema atau application view. Sub schema disebut juga dengan logical
view.
d. Prosedur
Prosedur, Pemakai dan staf operasi memerlukan prosedur yang menjelaskan
bagaimana sistem dijalankan. Misalnya jika terjadi kegagalan (failure)
sistem, khususnya untuk sistem multi-user, maka prosedur yang harus
disiapkan antara lain ialah:
a) apa yang harus dikerjakan pertama kali,
b) data apa yang perlu disimpan, dan
c) bagaimana dengan transaksi yang sedang dikerjakan yang tidak dapat
diproses selama terjadi kegagalan.
Jika kondisi telah menjadi normal kembali, maka prosedur yang harus disiapkan
ialah:
a) berapa banyak pekerjaan yang harus dikerjakan ulang, dan
b) data apa yang secara manual diperoleh selama terjadinya kegagalan
perlu untuk dimasukkan ke dalam sistem sebelum transaksi yang baru dapat
diproses.
e. Orang
Orang yang terkait dengan aplikasi basis data dikelompokkan sebagai berikut:
a) Clientele adalah orang untuk siapa sistem dikembangkan.
b) Pemakai ialah yang menggunakan sistem untuk memenuhi kebutuhan bisnis
c) Personal Operasi mereka yang menjalankan komputer dan peralatan-
peralatan yang berhubungan. Terdiri dari: operator komputer, personalia
data kontrol, dan operator data entry.
d) Personal Pengembang Sistem yang merancang dan
mengimplementasikan basis data dan aplikasinya.
e) Administrator Basis Data (ABD) yang berfungsi untuk melindungi basis
data dan memecahkan konflik diantara pemakai.
2.2 Komponen Fungsional Aplikasi Basis Data
Komponen sistem menyediakan tiga fungsi dari basis data, yaitu:
a. mekanisme untuk updating data,
Aplikasi basis data harus menyediakan suatu mekanisme updating data, yaitu
yang terkait dengan kegiatan-kegiatan: memasukkan (entering), menghapus
(deleting), dan mengganti (editing) basis data.
8
Terdapat Lima metode dalam peng-update-an data, yaitu :
1. Load Utility
Bagian dari SMBD, metoda ini merupakan metoda primitive. Pemakai
mengisi data dengan dipandu oleh nama data item yang muncul.
2. Menggunakan Formulir
formulir tampilan di layar mempunyai format yang lebih teratur, posisi
tampilan data item dapat dirancang sesuai kebutuhan, dan dilengkapi
dengan petunjuk untuk pemandu. Kemampuan tersebut menjadikan
tampilan pada layar lebih komunikatif.
3. Menggunakan Format Tabular (menampilkan sejumlah data dalam bentuk
penampilan semacam matrik.)
4. Perintah query/update secara interaktif
Perintah untuk mengakses program query/update dari SMBD, kemudian
menuliskan perintah yang diperlukan untuk mengganti data sesuai
keinginan.
5. Input dari file lain
b. mekanisme untuk menampilkan atau display data,
Terdapat tiga cara untuk menampilkan atau display data, yaitu:
1. Report
Report merupakan ekstrak dari basis data, yang hasilnya dapat langsung
dicetak ke printer, display pada layar monitor, dan disimpan ke media
penyimpanan.
2. Respon ke Query
suatu pelaksanaan perintah yang ditulis dengan bahasa query basis data.
Bahasa ini sangat populer, dan pada Agustus 1986 menjadi standard dengan
sebutan Structure Query Language (SQL)
3. Eksport ke Sistem lain.
c. mekanisme untuk mengontrol pemrosesan aplikasi.
Terdapat banyak cara untuk melakukan kontrol pemrosesan aplikasi,
diantaranya ialah:
1. Menu
Sebagai contoh pada susunan hierarchi menu dan sub-menu sebagai berikut:
File Edit
Open Add
9
New Modify
Exit
2. Pemprograman Aplikasi
Pemprograman aplikasi dapat dilakukan validasi item yang meliputi cek tipe
data, cek batas atas/bawah (jika ada), cek validasi isian (domain isian),
dan hubungan antar sub-isian (misalnya tanggal dengan bulan).
3. Mengurangi Kumpulan Perintah yang Tersedia
Dengan menggunakan pemrograman visual, satu command atau lebih
dapat dibuat enabled atau disabled.
Mekanisme kontrol aplikasi sangat penting. Secara ringkas bentuk-bentuk
kontrol yang dapat dilakukan ialah:
- Membatasi view basis data, yaitu dengan hanya memberikan data yang
diperlukan.
- Membatasi akses ke aplikasi melalui password dan nomor account.
- Mengajarkan aplikasi kepada pemakai hanya untuk yang diperlukan.
- Membatasi pemrosesan melalui menu.
- Membatasi pemrosesan melalui perancangan program aplikasi.
- Membatasi kumpulan command yang dapat diaktifkan.
Diharapkan dengan upaya-upaya tersebut, dapat lebih menjamin keutuhan
dan keamanan basis data.
1
BAB III
PEMODELAN DATA
Model data adalah kumpulan tools yang secara konseptual untuk
mendeskripsikan data, hubungan data, semantic data, dan konsistensi konstrain.
Model data yang akan diuraikan pada bagian ini adalah meliputi :
3.1 Model Data Flat-File
Basis data flat-file terdiri dari satu atau lebih file yang dapat dibaca,
yang secara normal berbentuk format file text. Informasi pada suatu file-file
disimpan sebagai fields, dengan fields-nya memiliki panjang konstan atau
panjang bervariasi yang dipisahkan beberapa karakter (delimeter).
Contoh 3.1 :
0123:Aris Puji Widodo:PS.Ilmu Komputer
1234:Djalal ER Riyanto:PS.Ilmu Komputer
2345:Kushartantya:PS.Ilmu Komputer
3456:Suhartono:PS.Ilmu Komputer
4567:Bambang Yismianto:PS.Ilmu Komputer
5678:Indriyati:PS.Ilmu Komputer
6789:Beta Noranita:PS.Ilmu Komputer
7890:Eko Adi Sarwoko:PS.Ilmu Komputer
Pada contoh 3.1, terdapat 3 fields, untuk setiap fields dipisahkan dengan titik dua.
Setiap fields memiliki panjang tidak konstan. Pada saat menggunakan fields
separator, seharusnya fields seperatornya bukan merupakan karakter yang terdapat
pada data.
Kelemahan basis data flat-file:
 Flat-file tidak menggunakan struktur data yang dengan mudah dapat direlasikan
 Sulit untuk mengatur data secara efisien dan menjamin akurasi
 Lokasi fisik fields data dengan file harus diketahui
 Program harus dikembangkan untuk mengatur data
3.2 Model Data Hirarki
Basis data Hirarki satu tingkat di atas basis data flat-file, dalam hal
ini kaitanya dengan kemampuan untuk menemukan dan memelihara relasi antar
kelompok data. Arsitektur basis data hirarki berdasarkan konsep hubungan
parent/child. Pada basis data hirarki, suatu root table atau parent table berada apa
struktur yang paling atas, terhubung ke child table yang dihubungkan dengan
2
data. Struktur model basis data hirarki terlihat seperti kebalikan dari struktur
pohon seperti yang diberikan pada gambar 3.1.
Publishers
Authors
Titles
BookStores
Inventory Orders
Root table atau parent
Child tables dari Root table
Child tables dari level
sebelumnya
Gambar 3.1, Model Basis Data Hirarki
Pada gambar 3.1 Publishers adalah sebagai root table. Publisher memiliki dua
child table : Author dan BookStores. Publisher mempunyai beberapa orang Author
yang dikontrak, dan mempunyai beberapa BookStores untuk mensuplai kebutuhan
buku-buku. Titles adalah child dari Author, Inventory dan Orders adalah child
dari BookStrores. Salah satu masalah yang muncul adalah terjadinya redudansi
informasi Titles yang disimpan pada tabel Inventory, karena tidak ada hubungan
langsung antara Authors dan BookStores.
Kelebihan basis data hirarki dibandingkan flat-file:
- Data dapat dengan cepat dilakukan retrieve
- Integritas data mudah dilakukan pengaturan
Kelemahan basis data hirarki dibandingkan flat-file:
- Pengguna harus sangat familiar dengan struktur basis data
- Terjadi redudansi data
3.3 Model Basis Data Jaringan
Model basis data jaringan merupakan perbaikan dari model basis data
hirarki, yaitu dengan menambahkan kemampuan root table untuk melakukan share
relationships dengan child tables. Dalam hal ini child table dapat memiliki banyak
root table dan untuk melakukan akses terhadap child table, tidak dibutuhkan lagi
untuk mengakses root table terlebih dahulu.
Untuk set structure dapat dilihat pada gambar 3.2.
3
Publishers
Authors BookStores
owner
set structure
members
contract supply
Gambar 3.2. Model Basis Data Jaringan
Pada gambar 3.2. tabel Publishers memiliki 2 tabel : Authors dan BookStores.
Authors dan BookStores adalah sebagai member dari tabel Publishers. Publishers
meng-contract Authors untuk bekerja, dan Publishers akan men-supply buku-buku
yang selesai dikerjakan ke BookStores.
Publishers
Authors
Titles
BookStores
Inventory Orders
Root table atau parent
shared child table
Child tables dari level
sebelumnya
Child tables dari level
sebelumnya
Gambar 3.3. Child Table yang Dilakukan Share
Pada gambar 3.3. memberikan deskripsi child table atau members dapat dilakukan
share oleh parent table. Tabel Titles dimiliki oleh Authors dan BookStores, karena
Authors dan BookStores membutuhkan relasi dengan Titles. Walaupun 2 set
structure dapat digunakan untuk mengakses tabel Titles, informasi book title hanya
disimpan pada satu tabel, sehingga redudansi data direduksi.
Kelebihan basis data jaringan:
- Data lebih cepat diakses
- User dapat mengakses data dimulai dari beberapa tabel
- Mudah untuk memodelkan basis data yang komplek
- Mudah untuk membentuk query yang komplek dalam melakukan retrieve
data.
Kelemahan basis data jaringan:
- Struktur basis datanya tidak mudah untuk dilakukan modifikasi
4
- Perubahan struktur basis data yang telah didefinisikan akan mempengaruhi
program aplikasi yang mengakses basis data
- User harus memahami struktur basis data.
3.4 Model Basis Data Relasional
Beberapa perbaikan ditambahkan pada model ini, yaitu sederhana dalam
mengatur data, retrieve data, dan change data. Unit utama yang disimpan pada basis
data adalah berbentuk tabel atau kelompok data yang saling berhubungan. Tabel
terdiri baris dan kolom, baris adalah merepresentasikan tuple atau record pada tabel,
dan kolom merepresentaksikan fields pada tabel. Tabel dapat berhubungan dengan
tabel yang lain dengan menggunakan kunci.
Model basis data relasional tidak memiliki parent/root teble, walaupun relasi
antara parent table dan child table diperbolehkan. Parent table dapat memiliki
banyak child table, dan demikian juga sebaliknya. Untuk representasi model basis
data relasional diberikan pada gambar 3.4.
Publishers
Authors Titles
BookStores
Inventory
Orders
supply
contract sell
are ordered
stocked inwrite
Gambar 3.4. Model Basis Data Relasional
Kelebihan basis data relasional:
- Data sangat cepat diakses
- Struktur basis data mudah dilakukan perubahan
- Data direpresentasikan secara logik, user tidak membutuhkan bagaimana
data disimpan.
- Mudah untuk membentuk query yang komplek dalam melakukan retrieve data
- Mudah untuk mengimplementasikan integritas data
- Data lebih akurat
- Mudah untuk membangun dan memodifikasi program aplikasi
- Telah dikembangkan Structure Query Language (SQL).
Kelemahan basis data relasional:
5
- Kelompok informasi/tables yang berbeda harus dilakukan joined untuk
melakukan retrieve data
- User harus familiar dengan relasi antar tabel
- User harus belajar SQL
3.5 Model Basis Data Berorientasi Objek
Model basis data berorientasi objek adalah suatu model basis data, dimana
data didefinisikan, disimpan, dan diakses menggunakan pemrograman berorientasi
objek.
Pada gambar 3.5. diberikan ilustrasi mengenai contoh basis data berorientasi objek
dan implementasinya. Basis data berorientasi objek didefinisikan dengan
menggunakan bahasa pemrograman berorientasi objek, yaitu bahasa Java. Aplikasi
End user juga di bangun dengan menggunakan bahasa berorientasi objek. Object
database management system digunakan untuk membuat link antara basis data dan
aplikasi.
Database declarations
using Java
interaction
Object declarations using
Java
Application code written
using Java
Java program compiler
Application executables
generated
End user
Database
Gambar 3.5. Basis Data Berorientasi Objek
Dua struktur dasar yang terdapat pada basis data berorientasi objek terdiri
adalah dari objects dan literals. Objects adalah suatu struktur yang memiliki
identifiers, object dapat diasosiasikan dengan object yang lain. Literals adalah nilai-
nilai yang diasosiasikan dengan object dan tidak memiliki identifiers. Object dan
literals diorganisasikan oleh suatu tipe, dimana setiap elemen memiliki properties
yang sama, yang dapat dimodifikasi untuk setiap object. Class adalah ekuivalen
dengan tabel pada basis data relasional. Operasi digunakan untuk mengambil nilai-
nilai dari class yang lain, menambah nilai, dan untuk menghapus nilai. Ilustrasi
bagaimana relasi data pada basis data berorientasi objek diberikan pada gambar 3.6.
6
Nama Class
Properties
Class
Operasi / method
Gambar 3.6. Model Data Berorientasi Objek
Kelebihan basis data berorientasi objek:
 Programmer hanya dibutuhkan memahami konsep berorientasi objek untuk
mengkombinasikan konsep berorientasi objek dengan storage basis data
relasional
 Objek dapat dilakukan sifat pewarisan dari objek yang lain
 Secara teoritis mudah untuk mengatur objek
 Model data berorientasi objek lebih kompatibel dengan tools pemrograman
berorientasi objek.
Kelemahan basis data berorientasi objek:
User harus memahami konsep berorientasi objek, karena basis data berorientasi
objek tidak dapat bekerja dengan metoda pemrograman tradisional
3.6 Model Basis Data Relasional Objek
Tujuan model basis data relasional objek dikembangkan adalah untuk
mengkombinasikan konsep model basis data relasional dengan style pemrograman
berorientasi objek. Pada gambar 3.7. memberikan ilustrasi contoh basis data
relasional objek. Tabel employee memiliki 2 kolom yang memiliki tipe bentukan,
yaitu empInfo yang bertipe Person dan addrInfo yang bertipe Address. Pada
empInfo memiliki tipe Person, dimana Person memiliki kategori yang lebih
spesifik: noId, firstName, dan lastName.
7
Gambar 3.7. Basis Data Relasional Objek
Kelebihan basis data relasional objek:
- Tipe bentukan dapat dibuat
Kelemahan basis data relasional objek:
- User harus memahami antara konsep berorientasi objek dengan relasional
- Beberapa vendor mengimplementasikan konsep relasional objek tidak
mendukung sifat pewarisan objek.
1
BAB IV
MODEL ENTITY RELATIONSHIP
Model data Entity-Relationship (E-R) terdiri dari sekumpulan obyek-obyek,
yang disebut dengan entitas dan hubungan yang terjadi diantara obyek-obyek tersebut.
Model data E-R terbagi menjadi tiga konsep dasar, yaitu : himpunan entitas, himpunan
relationship, dan atribut.
4.1 Entitas (Entity) dan Himpunan Entitas (Entitas Set)
Suatu entitas merupakan suatu obyek dasar atau individu yang mewakili
sesuatu yang nyata eksistensinya dan dapat dibedakan dari obyek-obyek yang lain.
Suatu entitas mempunyai sekumpulan sifat, dan nilai dari beberapa sifat tersebut
adalah unik yang dapat mengidentifikasi entitas tersebut.
Sebagai contoh : setiap mahasiswa pada suatu perguruan tinggi merupakan
suatu entitas, dan NIM secara unik dapat menjadi identitas seorang mahasiswa
Suatu entitas memiliki atribut. Atribut merupakan sifat-sifat atau properti
yang dimiliki oleh entitas. Atribut inilah yang membedakan antara entitas yang satu
dengan entitas yang lain. Sebagai contoh, entitas mahasiswa mempunyai atribut
NIM, nama_mhs, alamat_mhs, tgl_lahir seperti yang diberikan pada table 4.1.
Tabel 4.1. Himpunan Entitas Mahasiswa
NIM Nama_mhs Alamat_mhs Tgl_lahir
J2F004001 Thoriq Menoreh 9 Semarang 50236 24-9-1987
J2F004002 Pasha Beringin A2 Jakarta 10342 5-11-1986
J2F004003 Afifah Mawar II/7 Semarang 50234 16-8-1988
J2F004004 Rizky Buana 123 Bandung 20345 23-2-1987
J2F004004 Felix Bima I/21 Jakarta 10431 13-10-1988
Untuk setiap atribut, terdapat sekumpulan nilai yang disebut dengan domain,
atau himpunan nilai dari atribut tersebut. Domain dari atribut nama-mahasiswa
dapat berupa himpunan semua text-string dengan panjang yang telah ditentukan.
Dengan demikian, suatu basis data terdiri dari sekumpulan himpunan entitas
yang masing-masing terdiri dari sejumlah entitas dengan tipe yang sama. Sehingga
suatu atribut dari suatu himpunan entitas merupakan suatu fungsi pemetaan dari
himpunan entitas ke domain.
Suatu atribut yang digunakan dalam model E-R, dapat dikarakterisasikan ke
dalam tipe-tipe atribut sebagai berikut:
 Atribut komposit dan atribut sederhana
2
 Atribut sederhana yaitu atribut yang tidak diuraikan menjadi sub atribut, atau
tidak dapat diuraikan menjadi atribut yang lain. Sedangkan atribut komposit
adalah atribut yang dapat diuraikan menjadi beberapa sub atribut. Pada contoh
di atas, nama_mhs merupakan atribut sederhana, sedangkan alamat_mhs
merupakan atribut komposit karena dapat diuraikan menjadi beberapa sub
atribut, yaitu alamat, nama_kota, kodepos.
 Atribut bernilai tunggal (single-valued attribute) dan atribut bernilai banyak
(multivalued attribute)
 Atribut bernilai tunggal ditujukan pada atribut yang mempunyai paling banyak
satu nilai untuk setiap baris data. Pada contoh data mahasiswa di atas, semua
atribut merupakan atribut bernilai tunggal. Sedangkan atribut bernilai banyak
adalah ditujukan pada atribut yang dapat berisi lebih dari satu nilai, tetapi
mempunyai jenis yang sama. Contoh atribut bernilai banyak adalah jika kita
menambahkan atribut hobi pada data mahasiswa. Seorang mahasiswa dapat
memiliki satu hobi atau lebih dari satu hobi, bahkan dapat juga tidak
mempunyai hobi.
 Atribut null
 Nilai null digunakan ketika suatu entitas tidak mempunyai suatu nilai untuk
suatu atribut. Null juga menandakan bahwa suatu nilai atribut tidak ada atau
tidak diketahui. Sebagai contoh, jika mahasiswa tidak mempunyai hobi, maka
pada atribut hobi tidak ada nilainya.
 Atribut turunan (Derived Attribute)
 Atribut turunan adalah atribut yang nilainya diperoleh dari pengolahan atau
dapat diturunkan atribut atau tabel lain yang berhubungan. Sebagai contoh
adalah penambahan atribut angkatan pada tabel data mahasiswa. Nilai pada
atribut angkatan dapat diketahui dari NIM mahasiswa.
4.2 Relasi (Relationship) dan Himpunan Relasi (Relationship Set)
Relasi menunjukkan adanya hubungan di antara sejumlah entitas yang berasal dari
sejumlah himpunan entitas yang berbeda. Misalnya, seorang mahasiswa dengan
NIM = ‘J2F004001’ dan nama_mhs = ‘Thoriq’ (yang ada di himpunan entitas
mahasiswa) mempunyai relasi dengan entitas mata kuliah dengan kode_mtkul =
‘KOM104’ dan nama_mtkul = ‘Algoritma Pemrograman’. Relasi dari kedua entitas
tersebut mengandung arti bahwa mahasiswa tersebut sedang mengambil mata
kuliah Algortima Pemrograman.
3
Kumpulan semua relasi di antara entitas-entitas yang terdapat pada himpunan
entitas membentuk suatu himpunan relasi seperti yang diberikan pada table 4.2.
Tabel 4.2. Himpunan Entitas Mata Kuliah
Kode_mtkul Nama_mtkul sks Semester
KOM304 Sistem Operasi 3 3
KOM104 Algoritma
Pemrograman
3 1
KOM203 Pemrograman
Internet
3 2
KOM103 Logika Informatika 3 1
4.3 Kardinalitas Relasi (Mapping Cardinalities)
Kardinalitas merupakan jumlah maksimum entitas dimana entitas tersebut dapat
berelasi dengan entitas pada himpunan entitas yang lain.
Terdapat empat maca kardinalitas relasi yang terjadi antara himpunan entitas A dan
himpunan entitas B, yaitu :
 Satu ke Satu (One to one)
Suatu entitas di dalam himpunan entitas A dihubungkan dengan paling banyak
satu entitas di dalam hinpunan entitas B, dan entitas di dalam himpunan entitas
B dihubungkan dengan paling banyak satu entitas dalam himpunan entitas A.
a1
a4
a3
a2
b4
b3
b2
b1
Gambar 4.1. Kardinalitas Relasi Satu ke Satu
 Satu ke banyak (One to many)
Suatu entitas di dalam himpunan entitas A dihubungkan dengan lebih dari satu
entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B
hanya dapat dihubungkan dengan paling banyak satu entitas dalam himpunan
entitas A.
4
a1
a3
a2
b4
b3
b2
b1
b5
Gambar 4.2. Kardinalitas Relasi Satu ke Banyak
 Banyak ke Satu (Many to one)
Suatu entitas di dalam himpunan entitas A dihubungkan dengan paling banyak
satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas
B dapat dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A.
a4
a3
a2
a1
a5
b1
b3
b2
Gambar 4.3. Kardinalitas Relasi Banyak ke Satu
 Banyak ke Banyak (Many to many)
Suatu entitas di dalam himpunan entitas A dapat dihubungkan dengan lebih dari
satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas
B dapat dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A.
a1
a4
a3
a2
b4
b3
b2
b1
Gambar 4.4. Kardinalitas Relasi Banyak ke Banyak
5
4.4 Kunci (Key)
Kunci atau key merupakan satu atau gabungan dari beberapa atribut yang
dapat membedakan semua baris data dengan unik. Jika suatu atribut menjadi kunci,
maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama. Terdapat 3
macam kunci, yaitu:
1. Superkey, merupakan suatu himpunan yang terdiri dari satu atau lebih atribut
yang dapat membedakan setiap baris data dengan unik dalam sebuah tabel.
Sebagai contoh (NIM, nama_mhs, alamat_mhs, tgl_lahir), (NIM, nama_mhs,
alamat_mhs), (NIM, nama_mhs), (nama_mhs), (NIM).
2. Candidate-key, merupakan himpunan atribut minimal yang dapat membedakan
setiap baris data dengan unik dalam sebuah tabel. Sebagai contoh adalah (NIM),
(nama_mhs).
3. Primary key, merupakan kunci yang paling unik, lebih ringkas, lebih sering
dijadikan acuan. Primary key dapat dipilih dari salah satu dari candidate key.
Dari contoh di atas yang paling tepat dijadikan primary key adalah (NIM).
4.5 Diagram Entity-Relationship (Diagram E-R)
Suatu database, dapat digambarkansecara grafik dengan suatu diagram E-R.
Komponen-komponen pada diagram E-R dengan notasi yang diberikan pada
gambar 4.4.:
 Persegi panjang, menggambarkan himpunan entitas.
 Elips, menggambarkan atribut-atribut (atribut yang berfungsi sebagai kunci
digarisbawahi).
 Belah ketupat, menggambarkan himpunan relationship.
 Garis, menggambarkan hubungan atribut ke entitas dan himpunan entitas ke
himpunan relationship.
 Kardinalitas relasi dapat digambarkan dengan banyaknya garis cabang atau
dengan pemakaian angka, 1 untuk relasi satu, n untuk relasi banyak.
6
Himpunan Entitas E
a
Himpunan Relasi R
atribut a sebagai key
garis
Gambar 4.4. Notasi Diagram E-R
Sebagai contoh, relasi antara himpunan entitas Mahasiswa dengan himpunan
Mata Kuliah. Himpunan relasinya disebut dengan “Belajar”. Pada relasi ini,
seorang mahasiwa bisa mengambil lebih dari satu mata kuliah. Setiap mata
kuliah dapat diambil lebih dari satu mahasiswa. Relasi tersebut diberikan pada
gambar 4.5.
Mahasiswa Belajar mata kuliah
NIM
nama_mhs
tgl_lahiralamat_mhs
NIM kode_mtkul
nilai
kode_mtkul nama_mtkul
sks
semester
n n
Gambar 4.5. Skema Diagram E-R
4.6 Himpunan Entitas Lemah (Weak Entitas Lemah)
Himpunan entitas yang tidak memiliki atribut yang dapat berfungsi sebagai
primary key disebut dengan himpunan entitas lemah. Himpunan entitas lemah berisi
entitas-entitas yang kemunculannya tergantung pada keberadaannya dalam sebuah
relasi terhadap entitas lain (entitas kuat). Sebagai contoh, pada tabel data
Mahasiswa, dapat dilengkapi dengan entitas baru, yaitu hobi seperti yang diberikan
pada gambar 4.6.
7
Mahasiswa
NIM
nama_mhs
alamat_mhs
tgl_lahir
menyenangi
NIM hobi
hobi hobi
1 n
Gambar 4.6. Penambahan Entitas hobi
Data hobi dapat dikategorikan sebagai himpunan entitas lemah (digambarkan
dengan kotak ganda), karena keberadaannya bergantung pada adanya relasi dengan
entitas yang ada pada himpunan entitas mahasiswa.
4.7 Spesialisasi dan Generalisasi
Suatu himpunan entitas mungkin mempunyai sub kelompok entitas yang
berbeda dari entitas yang lain pada himpunan entitas tersebut. Suatu sub himpunan
yang berada dalam himpunan entitas mungkin mempunyai atribut yang tidak
dimiliki oleh semua entitas dalam himpunan entitas tersebut.
Sebagai contoh, himpunan entitas Dosen dapat dibagi menjadi dua, yaitu
dosen tetap dan dosen tidak tetap. Himpunan entitas dosen, bisa memiliki atribut
nip, golongan, pangkat, tgl_masuk. Sedangkan untuk dosen tidak tetap, atribut-
atribut tersebut tidak diperlukan. Adanya perbedaan tersebut menyebabkan entitas
dosen tidak mungkin disatukan dalam sebuah himpunan entitas. Dari suatu
himpunan entitas, dapat dilakukan pengelompokan yang dapat membentuk suatu
himpunan entitas baru atau proses top down disebut dengan proses spesialisasi
seperti pada gambar 4.7.
8
Dosen
ISA
Dosen tidak
tetap
Dosen Tetap
top down
Gambar 4.7. Spesialisasi
Kebalikan dari spesialisasi adalah generalisasi, yaitu proses bottom up. Sebagai
contoh adalah himpunan entitas mahasiswa sebenarnya dapat terdiri dari mahasiswa
S1-regular dan mahasiswa S1-ekstensi pada gambar 4.8.
Adanya spesialisasi dan generalisasi digambarkan dalam relasi khusus yang disebut
dengan relasi ISA.
Mahasiswa
ISA
Mahasiswa
S1-Ekstensi
Mahasiswa
S1-Regular
bottom up
Gambar 4.8. Generalisasi
4.8 Agregasi
Satu keterbatasan dari model E-R adalah tidak mungkin untuk mengekspresikan
suatu himpunan relasi yang secara langsung menghubungkan sebuah himpunan
entitas dengan sebuah himpunan relasi. Untuk mengatasi hal tersebut, digunakan
suatu notasi khusus untuk menunjukkan adanya agregasi semacam itu.
Sebagai contoh, relasi antara himpunan entitas mahasiswa dengan himpunan entitas
mata kuliah. Terdapat beberapa mata kuliah yang mengandung kegiatan praktikum.
Himpunan relasi “Kegiatan” dalam diagram ER berikut ini menunjukkan entitas
9
mahasiswa yang mengikuti kegiatan praktikum, karena sedang mengambil mata
kuliah yang ada praktikumnya, seperti yang diberikan pada gambar 4.9.
Mahasiswa Belajar Mata_Kuliah
n
Praktikum
n
Kegiatan
nim
kode_mtkul
kode_prakt
nilai
kode_prakt nama_prakt
n
n
Gambar 4.9. Agregasi
10
BAB V
OPERATOR RELASI
5.1 Relasi Aljabar
Operasi aljabar terdiri dari himpunan operator level tinggi yang dioperasikan pada suatu
relasi. Setiap operator menggunakan satu atau dua relasi sebagai input dan menghasilkan
relasi baru sebagai output.
Codd mendefinisikan operator relasi terdiri dari delapan operator, dimana dibagi
menjadi dua kelompok sebagai berikut :
1. Operasi tradisional, terdiri dari Union, Intersection, Difference, dan Cartesian
Product.
2. operasi relasional khusus, terdiri dari Restrict, Project, Join, dan Devide.
Untuk kedelapan operator tersebut diatas, akan diuraikan secara detil sebagai berikut :
1.a Union ()
AB adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana
terdiri dari himpunan semua tuples yang terdapat pada A atau B atau kedua-duanya.
Ilustrasi : (hasil relasi baru adalah bagian yang diberi warna)
A B
Gambar 5.1. Ilustrasi AB.
Contoh 5.1.
Diberikan relasi (tabel) A
S SNAME STATUS CITY
S1 Aris 20 Semarang
S4 Eko 20 Semarang
Relasi (Tabel) B
S SNAME STATUS CITY
S1 Aris 20 Semarang
S2 Heni 10 Jakarta
Maka AB adalah menghasilkan relasi baru :
S SNAME STATUS CITY
S1 Aris 20 Semarang
S2 Eko 20 Semarang
S4 Heni 10 Jakarta
11
1.b. Intersect ()
AB adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B,
dimana terdiri dari himpunan semua tuples yang terdapat pada A dan B.
Ilustrasi : (hasil relasi baru adalah bagian yang diberi warna)
A B
Gambar 5.2. Ilustrasi AB.
Contoh 5.2.
Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka AB
adalah menghasilkan relasi baru :
S SNAME STATUS CITY
S1 Aris 20 Semarang
I.c Difference (MINUS)
A MINUS B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan
B, dimana terdiri dari himpunan semua tuples yang terdapat pada A, tetapi tidak
terdapat pada B.
Ilustrasi : (hasil relasi baru adalah bagian yang yang tidak diberi warna)
A B
Gambar 5.3. Ilustrasi A MINUS B.
Contoh 5.3.
Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A
MINUS B adalah menghasilkan relasi baru :
S SNAME STATUS CITY
S4 Eko 20 Semarang
Dan untuk B MINUS A adalah :
S SNAME STATUS CITY
S2 Heni 10 Jakarta
1.d Cartesian Product ( / TIMES)
12
A TIMES B adalah relasi yang terdiri dari semua himpunan tuples untuk setiap
elemen relasi pada A dikombinasikan dengan semua elemen pada relasi B.
Ilustrasi :
P
Q
R
Z
K
P
P
Z
K
Q
Q
Z
K
R
R
Z
K
Cartesian
Product
Gambar 5.4. Ilustrasi A TIMES B.
Contoh 5.4.
Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A
TIMES B adalah menghasilkan relasi baru :
A A A A B B B B
S SNAME STATUS CITY S SNAME STATUS CITY
S1 Aris 20 Semarang S1 Aris 20 Semarang
S1 Aris 20 Semarang S2 Heni 10 Jakarta
S4 Eko 20 Jakarta S1 Aris 20 Semarang
S4 Eko 20 Jakarta S2 Heni 10 Jakarta
1.e Restriction ( )
Ekstraksi terhadap suatu tuples (baris) pada suatu relasi yang memenuhi kondisi
tertentu. Kondisi untuk relasi, direpresentasikan menggunakan klausa WHERE
dan dapat dikombinasikan dengan operator logika dan/atau matematika.
Ilustrasi :
Gambar 5.5. Ilustrasi Restriction.
Contoh 5.5.
Dengan menggunakan tabel A yang diberikan pada contoh 5.1., maka A WHERE
CITY = ‘Semarang’ adalah menghasilkan relasi baru :
S SNAME STATUS CITY
S1 Aris 20 Semarang
S4 Eko 20 Semarang
Tuples (baris) yang
memenuhi kondisi
13
Atau dapat juga dituliskan ke dalam bentuk :
)()''( ASemarangCITY 
1.f Projection ( )
Ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisi
tertentu.
Ilustrasi :
Atribut (kolom) yang
memenuhi kondisi
Gambar 5.6. Ilustrasi Projection.
Contoh 5.6.
Dengan menggunakan tabel A yang diberikan pada contoh 5.1., maka A
[S,SNAME] adalah menghasilkan relasi baru :
S SNAME
S1 Aris
S4 Eko
Atau dapat juga dituliskan ke dalam bentuk :
)(, ASNAMES
1.g Natural Join (JOIN)
Membentuk relasi dari dua relasi yang terdiri dari semua kemungkinan kombinasi
tuples, dimana tuples pada relasi yang kedua memenuhi suatu kondisi tertentu
(memiliki nilai atribut yang sama).
Ilustrasi :
a1 b1
a2
a3
b1
b2
Natural Join
b1
b2
c1
c2
b3 c3
a1
a2
b1
b1
a3 b1
c1
c1
c2
Gambar 5.7. Ilustrasi Natural Join.
Jika suatu relasi yang tidak memiliki atribut yang memenuhi kodisi (memiliki nilai
sama), maka A JOIN B adalah ekuivalen dengan A TIMES B.
1.h Devide (DEVIDEBY)
14
A DEVIDEBY B adalah relasi dengan heading (X) dan terdiri dari himpunan semua
tuples (X : x) dari tuples (X : x, Y : y) pada relasi A untuk semua tuples (Y : y) pada
relasi B.
Ilustrasi :
a
Devide
x
y
a
a
x
y
a z
b x
c y
Gambar 5.8. Ilustrasi Devide.
5.2 Relasi Kalkulus
Untuk melakukan manipulasi model relasional dapat dilakukan dengan relasi
aljabar dan relasi kalkulus. Relasi aljabar dapat secara aktual untuk membentuk relasi
yang diharapkan dari suatu relasi yang terdapat pada basis data, sedangkan relasi
kalkulus memberikan notasi untuk memformulasikan definisi relasi yang diinginkan
pada kondisi relasi yang diharapkan.
Dalam hal ini, hanya dilakukan pendefinisian karakteristik kondisi yang
diharapkan dan memisahkan penggunaan operasi-operasi relasi aljabar (Join, Projection,
…) yang dieksekusi untuk mengkonstruksikan hasil. Dengan kata lain bahwa relasi
kalkulus adalah merupakan deskriptif, sedangkan relasi aljabar adalah merupakan
perspektif. Atau dapat juga dikatakan bahwa relasi kalkulus merepresentasikan kondisi
suatu permasalahan (non-prosedural), sedangkan relasi aljabar memberikan prosedur
untuk menyelesaikan permasalahan (prosedural).
Kedua relasi tersebut adalah ekuivalen, tetapi berbeda dalam hal penerapannya
saja. Relasi kalkulus digunakan untuk natural language, sedangkan relasi aljabar
digunakan untuk bahasa pemrograman.
Relasi kalkulus merupakan bahasa yang berbasiskan first order predicate
calculus. Ekspresi menyatakan sifat dari hasil yang diharapkan, tanpa menentukan
bagaimana hasil tersebut di proses. Relasi kalkulus memiliki cirri-ciri sebagai berikut :
1. First order calculus biasanya mempergunakan simbol-simbol predikat dan simbol-
simbol fungsi. Untuk kaitannya dengan basis data : simbol fungsi tidak diperlukan
dan predikat diinterprestasikan sebagai relasi.
2. Formula pada first order calculus dapat dibedakan ke dalam dua kelas :
15
a. Open formulas (free variable)
b. Closed formulas atau sentences yang memiliki variable terbatas.
Karena kalkulus dipergunakan sebagai bahasa query dan basis data bertujuan
untuk instant maupun relasi lainnya, maka closed formulas tidak diperhatikan.
Untuk open formulas dapat didefinisikan sebagai himpunan tuples elemen dari
kondisi secara keseluruhan, yang dapat menghasilkan formula “TRUE”.
3. Karena definisi relasi yang berbeda dari teori himpunan dalam memunculkan nama
atribut dan himpunan domain, maka digunakan notasi yang sedikit berbeda.
2.a Domain Relational Calculus (DRC)
Ekspresi dalam DRC memiliki bentuk :
 fxAxAxA kk |:,...,:,: 2211
dimana :
f : formula, Boolean expression
kxxx ,...,, 21 : variabel yang muncul pada f
kAAA ,...,, 21 : atribut-atribut
kk xAxAxA :,...,:,: 2211 : disebut list target dari formula, sebagai definisi
struktur hasil ekspresi, dimana relasi kAAA ,...,, 21 berisi tuples dengan nilai
kccc ,...,, 21 , yang secara berurutan mengganti nilai kxxx ,...,, 21 yang memenuhi f (
f =TRUE).
Adapun untuk definisi singkat dari DRC adalah sebagai berikut :
Simbol yang muncul pada formula adalah terdiri dari : konstan (elemen-elemen
domain D), variabel (elemen-elemen dari himpunan berhingga V yang dihubungkan
dengan domain D), nama relasi (tabel) dan atribut (berdasarkan skema basis data),
operator perbandingan (=, ≠, >, >=, <, <=), penghubung logika (  (dan/konjugsi), 
(atau/disjungsi), ⌐ (not/negasi), ada/beberapa (), dan semua ( ))
Contoh 5.7.
Diberikan skema basis data silsilah dinasti keluarga, dimana terdiri dari empat relasi
(tabel) dan masing-masing memiliki key tunggal (atribut yang di beri garis bawah).
REIGNS(Sovereign, From, To)
PERSON(Name, Sex, Birth, Death)
16
FATHERHOOD(Father, Child)
MOTHERHOOD(Mother, Child)
REIGNS
Sovereign From To
James I 1603 1625
Charles I 1625 1648
Charles II 1660 1685
James II 1685 1688
Mary II 1688 1694
Anne 1702 1714
PERSON
Name Sex Birth Death
James I M 1566 1625
Elizabeth F 1590 1662
Charles I M 1600 1649
Charles II M 1630 1685
Mary F 1631 1659
James II M 1633 1701
Henrietta A F 1640 1670
Mary II F 1662 1694
Anne F 1665 1714
James F.E M 1686 1766
FATHERHOOD
Father Child
Lord Darnley James I
James I Elizabeth
James I Charles I
Charles I Charles II
Charles I Mary
Charles I James II
Charles I Herietta A
James II Mary II
James II Anne
James II James F.E
MOTHERHOOD
Mother Child
Mary Stuart James I
Anne of Denmark Elizabeth
Anne of Denmark Charles I
Henrietta Maria Charles II
Henrietta Maria Mary
Henrietta Maria James II
Henrietta Maria Herietta A
Anne Hyde Mary II
Anne Hyde Anne
Mary of Modena James F.E
17
Kemudian dilakukan operasi manipulasi terhadap model relasional diatas
menggunakan DRC sebagai berikut :
[a] Mengambil nama dan tanggal lahir dari anggota keluarga yang berstatus female
(F).
Dengan menggunakan formula secara DRC, maka query diatas diekspresikan
sebagai berikut :
    '':,:,:,:|:,: 2432131 FxxDxBxSexxNPERSONxBxN 
Sehingga diperoleh hasil query dari ekspresi diatas adalah :
Name Birth
Elizabeth 1590
Mary 1631
Henrietta A 1640
Mary II 1662
Anne 1665
[b] Mengambil Nama, Sex, dan dates (birth, death, mulai dan berakhirnya kekuasaan) untuk
semua keluarga Sovereigns.
Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagai
berikut :
 |:,:,:,:,:,: 654321 xDxToxFromxBxSexxSovn
 541 :,:,: xToxFromxSovnREIGNS
 6321 :,:,:,: xDxBxSexxNPERSONS
Sehingga diperoleh hasil query dari ekspresi diatas adalah :
Name Sex Birth From To Death
James I M 1566 1603 1625 1625
Charles I M 1600 1625 1648 1649
Charles II M 1630 1660 1685 1685
James II M 1633 1685 1688 1701
Mary II F 1662 1688 1694 1694
Anne F 1665 1702 1714 1714
[c] Mengambil nama-nama Sovereigns yang ayahnya diketahui, tettapi tidak terdapat pada
list sebagai anggota dinasti.
Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagai
berikut :
 |: 1xSovn
18
 431 :,:,: xToxFromxSovnREIGNS
 12 :,: xCxFDFATHERGHOO
     7652765 :,:,:,: xDxBxSexxNPERSONxxx 
Sehingga diperoleh hasil query dari ekspresi diatas adalah :
Sovereign
James I
5.2.2. Tuple Relational Calculus (TRC)
Ekspresi dalam TRC memiliki bentuk :
  fXx |
dimana :
f : Merupakan formula
x : Merupakan variabel tuple, satu-satunya variabel tuple di f
X : Satu set atribut yang berkorespodensi dengan x .
Nilai dari ekspresi adalah relasi dalam X , yang berisi semua tuples yang menghasilkan
TRUEf  .
Contoh 5.8.
Suatu ekspresi yang dituliskan dalam DRC :
 |:,:,: 321 xToxFromxSovn
 321 :,:,: xToxFromxSovnREIGNS
dapat dituliskan ke dalam ekspresi TRC dengan menggunakan satu variabel :
    xREIGNSToFromSovnx |,,
Contoh 5.9.
Suatu ekspresi yang dituliskan dalam DRC :
 |:,:,:,:,:,: 654321 xDxToxFromxBxSexxSovn
 541 :,:,: xToxFromxSovnREIGNS
 6321 :,:,:,: xDxBxSexxNPERSONS
dapat dituliskan ke dalam ekspresi TRC :
  |,,,,,1 DToFromBSexSovnx
   )(,, 22 xREIGNSToFromSovnx
 )..()..()..( 121212 ToxToxFromxFromxSovnxSovnx
19
   )(,,, 33 xPERSONSDBSexNamex
)..()..()..()..( 13131313 DxDxBxBxSexxSexxSovnxNamex 
Catatan :
Perbedaan antara DRC dan TRC adalah dalam membentuk variabel “RANGE” melalui
domain bukan relasi.
5.3 Persamaan dan Perbedaan Relasional Aljabar dan Relasi Kalkulus
1. Relasional kalkulus dan relasional aljabar dikelompokan pada bahasa yang
“Relationally Complete”, artinya : Setiap ekspresi relasional kalkulus dapat
direduksi pada bentuk relasional aljabar yang ekuivalen dengan ekspresi tersebut.
2. Ekspresi relasional kalkulus diselesaikan dengan menggunakan predikat kalkulus,
sedangkan ekspresi relasional aljabar diselesaikan dengan memanfaatkan operator
pada relasi sebagai operannya.
20
BAB VI
STRUCTURE QUERY LANGUAGE (SQL)
6.1 Struktur Dasar
SQL adalah didasarkan pada himpunan operasi-operasi relasional yang telah
dilakukan modifikasi dan perbaikan. Struktur dasar SQL terdiri dari tiga klausa, yaitu
SELECT, FROM, dan WHERE :
 SELECT berkorespondensi dengan operasi Projection pada relasional aljabar.
SELECT digunakan untuk menampilkan list atribut pada hasil query.
 FROM berkorespondensi dengan operasi Cartesian product pada relasional aljabar.
FROM digunakan sebagai list suatu relasi (tabel) yang akan di proses dan di
evaluasi.
 WHERE berkorespondensi dengan operasi Selection pada relasional aljabar.
WHERE terdiri dari predikat yang meliputi atribut dalam relasi yang muncul pada
klausa FROM.
Secara umum tipikal query dengan menggunakan SQL memiliki bentuk sebagai berikut:
SELECT nAAA ,...,, 21
FROM nrrr ,...,, 21
WHERE P
Dimana :
nAAA ,...,, 21 : merepresentasikan atribut
nrrr ,...,, 21 : merepresentasikan relasi (tabel)
P : adalah predikat, dengan P = TRUE.
Sintak query SQL adalah ekuivalen dengan ekspresi relasional aljabar sebagai berikut:
  nPAAA rrrn
 ...21,...,, 21

Untuk contoh-contoh yang diberikan pada modul ini, akan menggunakan skema basis
data supplier dan part yang diberikan pada gambar 6.1.
21
Tabel SUPPLIER
Tabel PARTS
Tabel SHIPMENT
Gambar 6.1. Skema Basis Data Supplier dan Part
22
1.1 Klausa Select
Diberikan suatu query sederhana dengan menggunakan skema basis data pada gambar
6.1, yaitu menentukan nama-nama semua kota (CITY) yang terdapat pada tabel PARTS:
SELECT CITY
FROM PARTS
Hasil query perintah SQL diatas adalah suatu relasi (tabel), yaitu :
Hasil query di atas akan mengambil semua tuples yang terdapat pada header (atribut)
CITY, sehingga duplikasi tuple terjadi. Untuk menghindari duplikasi yang terdapat pada
tuple dapat dilakukan dengan menambahkan DISTINCT setelah SELECT. Jika sintak
query di atas di rubah menjadi :
SELECT DISTINCT CITY
FROM PARTS
maka hasil query-nya menjadi :
Menampilkan semua atribut yang terdapat pada relasi sebagai hasil query, dapat
digunakan simbol asterisk ‘*’.
Misalkan diberikan sintak SQL :
SELECT COLOR, WEIGHT * 10
FROM PARTS
Sehingga akan diperoleh relasi sebagai hasil query sebagai berikut :
23
1.2 Klausa Where
Klausa WHERE digunakan untuk menentukan predikat atau kriteria yang harus di
penuhi suatu relasi sebagai hasil query. Klausa ini bersifat opsional, yaitu dapat
menggunakan klausa WHERE atau tidak. Jika tidak menggunakan klausa WHERE, maka
query dilakukan untuk semua tuples pada tabel yang disebutkan pada klausa FROM.
Misalkan, untuk menampilkan semua tuples SUPPLIER yang memiliki STATUS = 20.
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS = 20
Hasil query perintah SQL diatas adalah :
Nilai predikat yang terdapat klausa WHERE, untuk tipe string harus diberikan tanda petik
tunggal, sedangkan untuk tipe numerik tidak menggunakan tanda petik tunggal.
Misalkan, untuk menampilkan semua tuples SUPPLIER yan berada di semarang :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE CITY = ‘Semarang’
Hasil query perintah SQL diatas adalah :
24
Predikat pada klausa WHERE dapat dikombinasikan dengan operator relasi
lainnya, seperti <, <=, >, >=, <>, dan operator logika, seperti AND, OR, NOT.
Misalkan, untuk menampilkan semua SUPPLIER yang memiliki STATUS = 30,
tetapi berada pada kota(CITY) Yogyakarta :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS = 30 AND CITY = ‘Yogyakarta’
Hasil query perintah SQL diatas adalah :
Klausa WHERE dapat digunakan untuk melakukan query dengan predikat yang
berbentuk suatu range nilai tertentu, yaitu menambahkan klausa BETWEEN.Misalkan,
menampilkan SUPPLIER yang memiliki STATUS antara 10 sampai dengan 30 :
Perintah SQL-nya adalah :
Hasil query perintah SQL diatas adalah :
Klausa WHERE dapat digunakan untuk melakukan query dengan predikat yang
berbentuk range nilai tertentu, yaitu menambahkan klausa BETWEEN.Misalkan,
menampilkan SUPPLIER yang memiliki STATUS antara 10 sampai dengan 30 :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS BETWEEN 20 AND 30
Hasil query perintah SQL diatas adalah :
25
Untuk atribut yang bertipe string dapat dilakukan suatu pencarian dengan pola tertentu,
yaitu dengan memanfaatkan karakter ‘%’ atau ‘_’ (underscore) dan menambahkan
klausa LIKE pada klausa WHERE :
 ‘%’ untuk semua substring
 ‘_’ untuk semua karakter pada posisi yang sesuai.
Misalkan, untuk menampilkan semua tuples SUPPLIER yang kotanya (CITY) di awali
dengan huruf ‘S’ :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS LIKE ‘S%’
Hasil query perintah SQL diatas adalah :
Sedangkan untuk menampilkan semua SUPPLIER yang karakter kedua dari kota
(CITY) adalah karakter ‘o’ :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS LIKE ‘_o%’
Hasil query perintah SQL diatas adalah :
1.3 Klausa From
Klausa FROM digunakan untuk menentukan tabel yang akan dijadikan sebagai sumber
untuk pencarian data. Misalkan, untuk menampilkan semua SUPPLIER yang
melakukan SHIPMENT dengan jumlah kuantitasnya lebih besar 300 :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER, SHIPMENT
WHERE SUPPLIER.SCODE=SHIPMENT.SCODE
AND SHIPMENT.QTY > 300
Hasil query perintah SQL diatas adalah :
26
Dalam melakukan query untuk dua tabel atau lebih tidak dapat dilakukan
sembarang. Tabel-tabel yang digunakan harus memiliki keterhubungan. Pada contoh
query di atas keterhubungan diwakili oleh nilai yang sama pada atribut SCODE yang
diwakili oleh kedua tabel yang digunakan. Ekspresi SUPPLIER.SCODE adalah
menunjukan nilai SCODE yang berasal dari tabel SUPPLIER, sedangkan
SHIPMENT.SCODE adalah menunjukan nilai SCODE yang berasal dari tabel
SHIPMENT. Untuk menghindari ketidakjelasan atribut yang terlihat pada relasi
sebagai hasil query, dapat dilakukan dengan cara menyebutkan nama tabel yang
terdapat pada klausa FROM. Dan untuk menyederhanakan cara penulisan, dapat
digunakan nama alias untuk tabel-tabel yang terdapat pada klausa FROM.
6.2 Fungsi Agregasi
Dalam melakukan suatu query, terkadang dibutuhkan untuk melakukan perhitungan
jumlah tuples, total nilai suatu atribut, nilai atribut terbesar atau terkecil, dan
menentukan nilai rata-rata suatu atribut.
Untuk memenuhi kondisi-kondisi di atas, SQL sebagai bahasa query menyediakan
fungsi-fungsi agregasi sebagai berikut.
 AVG
Untuk memperoleh nilai rata-rata suatu atribut yang bertipe numerik.
 MIN
Untuk memperoleh nilai terkecil suatu atribut yang bertipe numerik.
 MAX
Untuk memperoleh nilai terbesar suatu atribut yang bertipe numerik.
 SUM
Untuk memperoleh nilai total suatu atribut yang bertipe numerik.
 COUNT
Untuk memperoleh nilai banyaknya tuples.
Untuk peggunaan fungsi-fungsi agregasi di atas, diberikan contoh-contoh penerapan
fungsi agregasi pada suatu query sebagai berikut:
 Menghitung banyaknya tuples pada tabel SHIPMENT
27
Perintah SQL-nya adalah :
SELECT COUNT(*)
FROM SHIPMENT
Hasil query perintah SQL diatas adalah :
 Menampilkan total berat (WEIGHT) untuk semua PARTS
Perintah SQL-nya adalah :
SELECT SUM(WEIGHT)
FROM PARTS
Hasil query perintah SQL diatas adalah :
 Menghitung rata-rata kuantitas (QTY) untuk semua SHIPMENT
Perintah SQL-nya adalah :
SELECT AVG(QTY)
FROM SHIPMENT
Hasil query perintah SQL diatas adalah :
 Menentukan nilai STATUS yang terbesar untuk SUPPLIER
Perintah SQL-nya adalah :
SELECT MAX(STATUS)
FROM SUPPLIER
Hasil query perintah SQL diatas adalah :
 Menentukan nilai kuantitas (QTY) yang terkecil untuk SHIPMENT
Perintah SQL-nya adalah :
SELECT MIN(QTY)
FROM SHIPMENT
Hasil query perintah SQL diatas adalah :
28
Fungsi agregasi dapat juga dikombinasikan dengan klausa GROUP BY, untuk
menyatakan pengelompokan tuple hasil query.
Misalkan, untuk menampilkan banyaknya tuple dan jumlah kuantitas (QTY) untuk
SHIPMENT yang dikelompokan berdasarkan PARTS (PCODE) dengan urutan secara
menaik:
Perintah SQL-nya adalah :
SELECT PCODE, COUNT(*), SUM(QTY)
FROM SHIPMENT
GROUP BY PCODE
ORDER BY PCODE
Hasil query perintah SQL diatas adalah :
6.3 Nilai Null
Nilai NULL pada suatu query dapat diperlakukan secara khusus, yaitu dapat juga
diperlakukan untuk query menggunakan ekspresi SQL.
Misalkan, menampilkan atribut CITY dari tabel SUPPLIER yang masih kosong :
Perintah SQL-nya adalah :
SELECT DISTINCT SCODE
FROM SUPPLIER
WHERE CITY is NULL
Hasil query perintah SQL diatas adalah : Tidak menampilkan hasil apapun, karena
semua atribut CITY sudah diisi dengan data.
Dapat juga dilkakukan untuk menghitung banyaknya nama SUPPLIER yang STATUS-
nya sudah terisi (tidak kosong) :
Perintah SQL-nya adalah :
SELECT COUNT(*)
FROM SUPPLIER
WHERE STATUS is NOT NULL
29
6.4 Manipulasi Data (DML)
4.1 Menambahkan Tuple (Record)
Sintak SQL untuk penambahan tuple baru ke suatu tabel adalah :
INSERT INTO   nAAAt ,...,, 21
VALUES  nVVV ,...,, 21
dimana :
 t : nama relasi (tabel) yang akan dilakukan penambahan tuple
 nAAA ,...,, 21 : nama-nama atribut yang akan di isi nilainya
 nVVV ,...,, 21 : nilai-nilai yang akan diisikan pada atribut-atribut.
Nama atribut-atribut pada tabel dapat tidak dituliskan, jika akan mengisikan nilai ke
semua atribut dengan urutan atribut sesuai dengan pendefinisian struktur yang
dilakukan pada saat awal pembuatan tabel. Tetapi jika urutan atribut berbeda atau
atribut yang akan diisikan nilainya tidak pada semua atribut, maka nama-nama
atribut yang akan di isi nilainya harus dituliskan.
Misalkan, untuk menambahkan tuple pada tabel SUPPLIER :
Perintah SQL-nya adalah :
INSERT INTO SUPPLIER
VALUES ('S6','YOSHINTA',20,'Semarang')
Hasil query perintah SQL diatas adalah :
Ekspresi perintah SQL di atas, dapat juga dituliskan menggunakan ekspresi SQL :
INSERT INTO SUPPLIER (SCODE,SNAME,STATUS,CITY)
VALUES ('S6','YOSHINTA',20,'Semarang')
Untuk nama atribut yang tidak disebutkan pada perintah INSERT, atribut-atribut
tersebut akan di isi dengan nilai NULL.
Misalkan, perintah SQL sebagai berikut :
INSERT INTO SUPPLIER (SCODE,SNAME,STATUS)
tuple baru yang
ditambahkan pada
tabel SUPPLIER
30
VALUES ('S7','MIRANTHI',20)
Hasil query perintah SQL diatas adalah :
4.2 Menghapus Tuple (Delete)
Sintak SQL untuk menghapus tuple pada suatu tabel adalah :
DELETE FROM t
[ WHERE P ]
4.3 Mengubah Tuple (Record)
Sintak SQL untuk mengubah nilai atribut pada tuple dari sebuah tabel adalah :
UPDATE t
SET assignment
[ WHERE P ]
6.5 Transaksi
Perintah transaksi yang harus digunakan sebagai akhir transaksi adalah :
- commit [ work ]
Operasi-operasi manipulasi data yang telah dilakukan, akan di simpan secara
permanen ke dalam disk dan transaksi dinyatakan selesai. Setelah transaksi
commit, secara otomatis transaksi baru di mulai.
- rollback [ work ]
Operasi-operasi manipulasi data yang belum dilakukan commit akan dibatalkan
(tidak disimpan secara permanen ke dalam disk). Sehingga kondisi basis data
yang di simpan pada disk tidak akan mengalami perubahan, seperti sebelum
transaksi rollback di eksekusi.
Work pada perintah transaksi commit dan rollback bersifat opsional dan tidak
memberikan pengaruh terhadap makna kedua perintah transaksi tersebut.
nilai NULL atribut
CITY yang
ditambahkan pada
tabel SUPPLIER
31
6.6 DDL
DDL adalah perintah-perintah untuk mendefinisikan objek-objek basis data, dimana
tidak hanya sekumpulan relasi (tabel), tetapi juga tentang informasi setiap tabel, yaitu
meliputi sebagai berikut :
 Skema untuk setiap tabel
 Domain nilai untuk setiap atribut
 Integritas constraints
 Indek untuk setiap tabel
 Informasi security dan authorization untuk setiap tabel
 Struktur fisik penyimpanan untuk setiap tabel pada disk.
Sintak SQL untuk membuat tabel di dalam basis data adalah :
CREATE TABLE   nn DADADAt ,...,, 2211
dimana :
 t : adalah nama tabel
 nAAA ,...,, 21 : adalah nama-nama atribut yang dimiliki oleh tabel t
 nDDD ,...,, 21 : adalah domain nilai masing-masing atribut yang ditentukan
berdasarkan tipe data
Untuk domain tipe data meliputi sebagai berikut :
 char(n)
Tipe string dengan panjang tetap sebesar n karakter (jika panjang karakter yang
diisikan kurang dari n, maka sisanya di isi dengan spasi)
 varchar(n)
Tipe string dengan panjang fleksibel, tetapi maksimal sebanyak n karakter.
 int atau integer
Tipe integer 2 byte.
 smallint
Tipe integer 1 byte.
 real, double, precision
Tipe pecahan decimal floating point.
 float(n)
Tipe pecahan decimal floating point dengan presisi n digit.
 date
Tipe tanggal (terdiri 4 digit tahun, bulan, dan tanggal).
32
 time
Tipe waktu (terdiri dari jam, menit, dan detik)
Misalkan, untuk membuat tabel SUPPLIER :
Perintah SQL-nya adalah :
CREATE TABLE SUPPLIER
( SCODE char(3),
SNAME varchar(20),
STATUS int,
CITY varchar (15))
Dalam melakukan pembuatan tabel dapat juga dilakukan untuk menambahkan suatu
indek primer berdasarkan atribut tertentu, yaitu dengan cara menggunakan klausa
PRIMARY KEY. Misalkan, pada tabel SUPPLIER di atas memiliki indek
berdasarakan atribut SCODE :
Perintah SQL-nya adalah :
CREATE TABLE SUPPLIER
( SCODE char(3) NOT NULL,
SNAME varchar(20),
STATUS int,
CITY varchar (15),
PRIMARY KEY (SCODE))
Jika suatu tabel memiliki indek secara komposit (gabungan), maka dilakukan dengan
cara menuliskan semua atribut pada kalusa PRIMARY KEY.
Misalkan pada tabel SUPPLIER memiliki indek SCODE dan SNAME :
Perintah SQL-nya adalah :
CREATE TABLE SUPPLIER
( SCODE char(3) NOT NULL,
SNAME varchar(20) NOT NULL,
STATUS int,
CITY varchar (15),
PRIMARY KEY (SCODE,SNAME))
Keberadaan tabel yang telah dibuat dapat dibatalkan atau di hapus dengan menggunakan
perintah SQL :
DROP TABLE t
t adalah nama tabel yang di hapus. Misalkan tabel SUPPLIER akan dihapus :
Perintah SQL-nya adalah :
33
DROP TABLE SUPPLIER
Struktur tabel yang telah dibut dapat dilakukan perubahan, tanpa harus menghapus tabel
dan kemudian membangunnya kembali dengan definisi struktur yang baru. Perubahan
struktur menjadi lebih praktis, dan juga tidak mengakibatkan hilangnya data yang sudah
ada pada tabel (jika data sudah ada).
Perubahan struktur terdiri dari :
Penambahan atribut
Sintak SQL :
ALTER TABLE t ADD A D
t adalah nama tabel yang dilakukan perubahan, A adalah nama atribut, dan D adalah
tipe data untuk atribut A .
Penghapusan atribut
Sintak SQL :
ALTER TABLE t DROP A
t adalah nama tabel yang dilakukan perubahan, dan A adalah nama atribut.
Misalkan, untuk menambahkan atribut DATE_OF_BORN pada tabel SUPPLIER :
Perintah SQL-nya adalah :
ALTER TABLE SUPPLIER ADD DATE_OF_BORN date
Dan untuk menghapus atribut DATE_OF_BORN pada tabel SUPPLIER, dilakukan
dengan perintah SQL :
ALTER TABLE SUPPLIER DROP DATE_OF_BORN
34
BAB 7
NORMALISASI DATA
Normalisasi data merupakan suatu proses untuk mendapatkan struktur tabel atau
relasi yang efisien dan bebas dari anomali, dan mengacu pada cara data item dikelompokkan
ke dalam struktur record. Anomali merupakan efek samping yang tidak diharapkan, yang
ditimbulkan dari suatu proses.
Terdapat tiga macam anomali, ialah:
 Anomali Peremajaan
 Anomali Anomali
 Anomali Penghapusan
Sebagai contoh :
PERWALIAN
NIM NAMA NODOSEN DOSEN
20001 MARLINA 131 DRA DINA MSC
20002 HARDIMIN 132 BADRUN SSI MSI
20003 KOMARUDIN 133 DRS AMINUDIN
20004 HUSNI 131 DRA DINA MSC
20005 DANY 131 DRA DINA MSC
20006 INDAH 132 BADRUN SSI MSI
 Ketergantungan Fungsional
Suatu ketergantungan fungsional ialah suatu relationship diantara atribut. Dengan
ketergantungan fungsional, jika diberikan nilai suatu atribut maka akan dapat diperoleh atau
dicari nilai dari atribut lain. Atau secara lebih formal ketergantungan fungsional
didefinisikan sebagai berikut:
R suatu relasi, x dan y himpunan bagian dari himpunan atribut R.
y mempunyai ketergantungan fungsional (KF) pada x, atau:
x  y
jika dan hanya jika setiap nilai x di dalam R mempunyai asosiasi dengan tepat satu nilai
y di dalam R.
35
x disebut determinant, yaitu sebagai atribut
penentu.
y disebut dependent, yaitu sebagai atribut
yang bergantung.
sebagaimana berikut :
x y
Diagram Ketergantungan Fungsional
Contoh:
Jika diberikan relasi berikut:
MHS (nim, nama, tgllahir, alamat, kodepos,
kabupaten, propinsi)
Dari relasi di atas, maka:
nim  nama
nim  tgllahir
nim  alamat
nim  kodepos
nim  kabupaten
nim  propinsi
dan juga
kodepos  kabupaten
kodepos  propinsi
merupakan contoh-contoh yang memenuhi ketentuan ketergantungan fungsional.
Sedangkan
tgllahir  alamat
tidak memenuhi ketentuan di dalam ketergantungan fungsional, karena pada kenyataan-nya
dapat terjadi lebih dari satu orang dengan tgllahir yang sama
 Kunci (Key)
X Y
36
Secara umum, suatu kunci ialah suatu atribut atau group atribut yang secara fungsional
menentukan atribut non-key.
NILAI
NIM KODEMTK NIL_HURUF
20001 MTK1 A
20001 MTK3 B
20002 MTK3 B
20003 MTK1 C
20003 MTK2 B
20004 MTK3 C
20005 MTK1 A
20006 MTK2 B
20006 MTK3 B
 Unnormalized
Unnormalized ialah suatu relasi yang mengandung atribut dengan nilai non-atomic, dan atau
mempunyai group atribut berulang. Nilai atribut atomic ialah nilai suatu atribut yang tidak
dapat dibagi menjadi komponen-komponen yang lebih kecil. Sehingga nilai atribut
composite dan nilai atribut multivalued tidak diijinkan disini.
Berikut adalah contoh relasi yang mengandung atribut dengan nilai non-atomic, yang
disebabkan adanya atribut-atribut composite dan atribut multivalued.
nama_jalan kota kode_pos
KENDARAAN
NOPOLISI PEMILIK ALAMAT WARNA
H3003YA IR HARY
D.
JL MELATI 234,PATI,33890 MERAH
H3004YB PAMUJI JL GARUDA
V/2,TEGAL,33567
HITAM,PUTIH
H3005YA NINA JL DELIMA
X/54,DEMAK,33452
BIRU,BIRU
MUDA
37
Perhatikan isi data dari formulir isian rencana studi berikut:
FORMULIR ISIAN RENCANA STUDI
NAMA : AMIR
NIM : 10
KODE MATA KULIAH DOSEN RUANG NILAI
----- ----------- ---------- ----- -----
MTK1 STATISTIK DRS JANUAR, MSI R101 B
MTK2 BHS INGGRIS DRA ANDINI R102 A
Kemudian data di atas, ditambah dengan data dari mahasiswa lain disimpan dalam bentuk
relasi sebagai berikut:
RENC_STUDI
NIM NAMA KODEMTK MTK DOSEN RUANG NILAI
10 AMIR
MTK1, STATISTIK, DRS
JANUAR
MSI,
R101, B,
MTK2 BHS
INGGRIS
DRA
ANDINI
R102 A
11 PUTRI
MTK1, STATISTIK, DRS
JANUAR
MSI,
R101, A,
MTK4 FISIKA DRS HERY
MSI
R201 B
12 ANDI MTK2 BHS
INGGRIS
DRA
ANDINI
R102 A
merupakan relasi dengan bentuk unnormalized, karena di dalamnya terdapat group atribut
berulang.
Bentuk Normal Ketiga (3NF)
Suatu relasi di dalam 3NF jika dan hanya jika:
 Memenuhi 2NF
 Setiap atribut bukan kunci tergantung non-transitive pada kunci utama.
FORMULIR ISIAN RENCANA STUDI
NAMA : AMIR
NIM : 10
KODE MATA KULIAH DOSEN RUANG
NILAI
----- ----------- ---------- ----- ---
--
MTK1 STATISTIK DRS JANUAR, MSI R101 B
MTK2 BHS INGGRIS DRA ANDINI R102 A
38
Atribut bukan kunci merupakan sembarang atribut yang tidak berpartisipasi di dalam kunci
utama dari relasi terkait. Sedangkan ketergantungan transitive terjadi apabila satu atribut
bukan kunci tergantung pada satu atau lebih atribut bukan kunci yang lain.
Kunci Utama A B
Gambar 7.9 Ketergantungan Transitive
Dari gambar di atas, B mempunyai ketergantungan fungsional pada Kunci Utama, dan juga
pada A. Non-transitive memberikan implikasi tidak adanya saling ketergantungan.
Contoh:
Relasi di dalam Gambar 7.8 (yang masih mengandung ketergantungan transitive) akan
diubah agar mempunyai bentuk normal yang lebih tinggi yaitu 3NF.
Untuk itu maka relasi TBL_MTK dipecah menjadi dua, yaitu AMPU dan LOKASI,
sehingga relasi yang dihasilkan ialah sebagai berikut.
39
MHS KRS
NIM NAMA NIM KODEMTK NILAI
10 AMIR 10 MTK1 B
11 PUTRI 10 MTK2 A
12 ANDI 11 MTK1 A
11 MTK4 B
12 MTK2 A
AMPU LOKASI
KODEMTK MTK DOSEN DOSEN RUANG
MTK1 STATISTIK DRS JANUAR
MSI
DRS JANUAR
MSI
R101
MTK2 BHS
INGGRIS
DRA ANDINI DRA ANDINI R102
MTK4 FISIKA DRS HERY
MSI
DRS HERY
MSI
R104
Gambar 7.10 Bentuk Normal Ketiga (3NF)
Dari relasi yang dihasilkan terakhir di atas, maka:
 Tidak ada ketergantungan transitive.
 Setiap atribut bukan kunci bergantung penuh pada kunci utama.
Sampai dengan tahapan terakhir ini (3NF), diperoleh struktur relasi yang bebas dari anomali.
7.4. Bentuk-bentuk Normal
Relasi di dalam bentuk normal ketiga (3NF) sudah cukup untuk banyak perancangan basis
data praktis. Akan tetapi 3NF tidak menjamin semua anomali telah dihilangkan (McFadden,
1988). Sehingga untuk menghilangkan anomali yang masih ada diperlukan penambahan
proses normalisasi yang lebih tinggi. Pada prakteknya sangat sedikit orang perlu
memikirkan penormalisasian di atas bentuk normal ketiga (Whitehorn, 2003).
Bentuk-bentuk normal yang lebih tinggi dari 3NF antara lain ialah:
a. Boyce-Codd Normal Form (BCNF)
Jika suatu relasi mempunyai lebih dari satu kunci kandidat yang overlapping, terdapat
kemungkinan masih dijumpainya anomali (meskipun relasi sudah memenuhi 3NF). R.
F. Boyce dan E. F. Codd mengusulkan pemecahannya dengan mengenalkan suatu
40
bentuk normalisasi yang didefinisikan lebih kuat dari 3NF. Bentuk tersebut yang
kemudian disebut dengan nama Boyce Codd Normal Form (BCNF). Suatu relasi di
dalam BCNF jika dan hanya jika, hanya determinant yang menjadi kunci kandidat.
b. Bentuk Normal Keempat
Meskipun suatu relasi sudah memenuhi BCNF, terdapat kemungkinan relasi tersebut
masih menghasilkan anomali peremajaan. Untuk menghilangkan anomali tersebut
perlu dilakukan proses normalisasi untuk mendapatkan 4NF. Di dalam membentuk
relasi menjadi 4NF, akan terkait dengan suatu bentuk hubungan antar atribut yang
disebut dengan: Multi Valued Dependence (MVD).
Ambil R suatu relasi, dan A, B, C merupakan bagian berubah-ubah dari R.
B dikatakan multi dependent pada A, atau
A  B
jika dan hanya jika himpunan nilai B sesuai dengan pasangan (nilai A, nilai C) di dalam
R, hanya bergantung pada nilai A dan bebas dari nilai C.
Suatu relasi R di dalam 4NF jika dan hanya jika, kapan saja terdapat himpunan bagian
A dan B dari atribut R sedemikian sehingga:
MVD A  B memenuhi,
maka semua atribut juga bergantung fungsional pada A.
c. Bentuk Normal Kelima
Sebelum bicara tentang relasi dengan bentuk normal yang lebih tinggi dari 4NF,
perlu dikenalkan dahulu tentang Joint-Dependency (JD).
Joint Dependency (JD):
Ambil R suatu relasi, dan A, B, .., Z himpunan bagian berubah-ubah dari himpunan
atribut R.
R memenuhi joint dependence, jika:
* (A, B, .., Z)
jika dan hanya jika R sama dengan joint dari projection dari A, B, ..., Z.
41
Suatu relasi di dalam 5NF atau disebut dengan Projection-Joint Normal Form (PJ/NF)
jika dan hanya jika setiap JD di dalam R dinyatakan tidak langsung oleh kandidat key
dari R.
42
BAB 8
PERLINDUNGAN DAN PEMULIHAN DATA
 Integritas dan Keamanan
Integritas konstrain memberikan jaminan bahwa perubahan yang dilakukan terhadap
basis data tidak menghasilkan hilangnya konsistensi data. Integritas konstrain juga
untuk mencegah terjadinya suatu kerusakan basis data akibat adanya kejadian yang
bersifat asidental.
 Integritas Data
Integritas data adalah jaminan konsistensi data terhadap semua status konstrain yang
diberlakukan terhadap data tersebut, sehingga memberikan jaminan keabsahan data
itu sendiri.
 Keamanan Basis Data
Keamanan basis data adalah pemberian perlindungan basis data terhadap ancaman
dan gangguan, baik yang bersifat teknis maupun administrasi
 Locking dan Deadlock
Salah satu teknik untuk mengatasi masalah-masalah yang terjadi pada konkurensi
dengan cara menggunakan teknik Locking. Locking adalah merupakan teknik untuk
melakukan penguncian terhadap suatu transaksi lain dalam melakukan pengaksesan
data yang sedang dipergunakan oleh transaksi current.
Matrik Jenis Kompatibel Lock
Transaksi B
Transaksi A
X-lock S-lock No Lock
X-lock No No Yes
S-lock No Yes Yes
No Lock Yes Yes Yes
Teknik Locking untuk penanganan konkurensi pada kehilangan update :
Transaksi A Waktu Transaksi B
T1 Begin transaksi A
Begin transaksi A T2 Read(Balance)
{membutuhkan S-lock pada
Balance}
Read(Balance) T3 Balance = Balance + 100
{membutuhkan S-lock pada
Balance}
Balance = Balance + 10 T4 Write(Balance)
43
{membutuhkan X-lock pada
Balance}
WAIT
Write(Balance) T5 WAIT
{membutuhkan X-lock pada
Balance}
WAIT
WAIT Deadlock WAIT
WAIT Deadlock WAIT
 View Serializability
Konsep view equivalent merupakan kepastian untuk konsep view serializability. Dikatakan
bahwa schedule S adalah view serializability jika view equivalent untuk serial schedule.
Schedule 6 adalah view serializable. Tentu saja view equivalent untuk serial schedule < 3T ,
4T , 6T >, karena instruksi read(Q) membaca inisialisasi nilai Q antara kedua schedule, dan
6T menjalankan write Q terakhir antara kedua schedule.
3T 4T 6T
Read(Q)
write(Q)
write(Q)
write(Q)
 Testing untuk Serializability
Jika untuk precedences graph S memiliki cycle, maka schedule S tidak conflict
serializable. Tetapi jika precedences graph S tidak memiliki cycle, maka schedule S
conflict serializable.
Contoh
Diberikan schedule A sebagai berikut :
1T 2T 3T 4T 5T
read(Y)
read(Z)
read(Y)
read(Y)
write(Y)
read(V)
read(W)
write(W)
44
T2T1
T3 T4
T5
T2
5
T2
6
T2
8
T2
7
read(U)
read(U)
write(U)
write(Z)
read(Y)
write(Y)
read(Z)
write(Z)
 Sehingga dari schedule A diatas diperoleh precedence graph sebagai berikut :
 Deadlock Detection and Recovery
Deteksi deadlock dilakukan dengan cara sistem secara periodik mengawasi dan
mendeteksi deadlock yang terjadi.
Misalkan terdapat transaksi T25, T26, T27, T28 melakukan aktivitas transaksinya.
T25 dalam status menanti penggunaan data yang dipegang transaksi T26 dan T27
T27 menanti transaksi T26.
Jika T28 menanti Transaksi T27 maka terjadilah siklus penantian yang mengakibatkan
terjadinya deadlock. Siklus tersebut adalah T26 – T28 – T27 – T26, yang dapat dilihat pada
gambar 8.17 yang merupakan terjadinya deadlock.
45
DAFTAR PUSTAKA
Pratama, A. 2013.Pengenalan Database
http://ilmukomputer.org/wp-content/uploads/2013/02/PENGENALAN-
DATABASE-ILMUKOMP.pdf (di unduh 1/12/2013)
http://rogayah.staff.gunadarma.ac.id/Downloads/files/28963/konsep-sistem-basis-
data_presentasi.pdf (di unduh 1/12/13)
http://database.rizaarifudin.info/category/materi-1/ (dilihat 1/12/2013)

More Related Content

What's hot

Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...ninikratna93
 
01 Pengatantar Basis Data
01 Pengatantar Basis Data01 Pengatantar Basis Data
01 Pengatantar Basis DataMartin Arale
 
Materi 1 pengantar sistem basis data.docx
Materi 1 pengantar sistem basis data.docxMateri 1 pengantar sistem basis data.docx
Materi 1 pengantar sistem basis data.docxElma Fiana
 
SIM, Siti Aula, Prof.Dr.Ir.Hapzi Ali,MM,CMA, Pengertian DBSM, Universitas Mer...
SIM, Siti Aula, Prof.Dr.Ir.Hapzi Ali,MM,CMA, Pengertian DBSM, Universitas Mer...SIM, Siti Aula, Prof.Dr.Ir.Hapzi Ali,MM,CMA, Pengertian DBSM, Universitas Mer...
SIM, Siti Aula, Prof.Dr.Ir.Hapzi Ali,MM,CMA, Pengertian DBSM, Universitas Mer...Siti Aula
 
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...Naomiyosephine
 
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...Naomiyosephine
 
Tugas sim, pratiwi rosantry,yananto mihadi putra,se, m.si, sistem manajemen b...
Tugas sim, pratiwi rosantry,yananto mihadi putra,se, m.si, sistem manajemen b...Tugas sim, pratiwi rosantry,yananto mihadi putra,se, m.si, sistem manajemen b...
Tugas sim, pratiwi rosantry,yananto mihadi putra,se, m.si, sistem manajemen b...Pratiwi Rosantry
 
Tugas sim, viki anjarwati, yananto mihadi. p, sistem informasi manajemen basi...
Tugas sim, viki anjarwati, yananto mihadi. p, sistem informasi manajemen basi...Tugas sim, viki anjarwati, yananto mihadi. p, sistem informasi manajemen basi...
Tugas sim, viki anjarwati, yananto mihadi. p, sistem informasi manajemen basi...VIKIANJARWATI
 
TUGAS SIM, LISANIAH AMINI LISA'ILINA, YANANTO MIHADI PUTRA, SISTEM MANAJEMEN ...
TUGAS SIM, LISANIAH AMINI LISA'ILINA, YANANTO MIHADI PUTRA, SISTEM MANAJEMEN ...TUGAS SIM, LISANIAH AMINI LISA'ILINA, YANANTO MIHADI PUTRA, SISTEM MANAJEMEN ...
TUGAS SIM, LISANIAH AMINI LISA'ILINA, YANANTO MIHADI PUTRA, SISTEM MANAJEMEN ...LisaniahAmini
 
SIM, Mercu Buana, Aprilia Rahmawati, 43215120286 - keamanan jaringan dari hacker
SIM, Mercu Buana, Aprilia Rahmawati, 43215120286 - keamanan jaringan dari hackerSIM, Mercu Buana, Aprilia Rahmawati, 43215120286 - keamanan jaringan dari hacker
SIM, Mercu Buana, Aprilia Rahmawati, 43215120286 - keamanan jaringan dari hackerAprilia Rahmawati
 
Tugas sim masda alif araffi ( yananto mihadi putra) sistem manajemen basis ...
Tugas sim masda alif araffi ( yananto mihadi putra)   sistem manajemen basis ...Tugas sim masda alif araffi ( yananto mihadi putra)   sistem manajemen basis ...
Tugas sim masda alif araffi ( yananto mihadi putra) sistem manajemen basis ...masda araffi
 
TUGAS SIM, MARINI KHALISHAH KHANSA, YANANTO MIHADI PUTRA, SE, M.Si, SISTEM MA...
TUGAS SIM, MARINI KHALISHAH KHANSA, YANANTO MIHADI PUTRA, SE, M.Si, SISTEM MA...TUGAS SIM, MARINI KHALISHAH KHANSA, YANANTO MIHADI PUTRA, SE, M.Si, SISTEM MA...
TUGAS SIM, MARINI KHALISHAH KHANSA, YANANTO MIHADI PUTRA, SE, M.Si, SISTEM MA...Marini Khalishah Khansa
 
Tugas sim, intan komalasari,yananto mihadi p,sistem manajemen basis data, 2018
Tugas sim, intan komalasari,yananto mihadi p,sistem manajemen basis data, 2018Tugas sim, intan komalasari,yananto mihadi p,sistem manajemen basis data, 2018
Tugas sim, intan komalasari,yananto mihadi p,sistem manajemen basis data, 2018Intanks20
 
Database dan manajemen database
Database dan manajemen databaseDatabase dan manajemen database
Database dan manajemen databaseSigit Sanjaya
 
SIM - ROHMAD, Prof. Dr. Ir. HAPZI ALI, MM, CMA - SISTEM MANAJEMEN DATA BASE
SIM - ROHMAD, Prof. Dr. Ir. HAPZI ALI, MM, CMA - SISTEM MANAJEMEN DATA BASESIM - ROHMAD, Prof. Dr. Ir. HAPZI ALI, MM, CMA - SISTEM MANAJEMEN DATA BASE
SIM - ROHMAD, Prof. Dr. Ir. HAPZI ALI, MM, CMA - SISTEM MANAJEMEN DATA BASERohmad MT
 
06, sistem informasi manajemen, sistem manajemen bassis data, septi hendarwat...
06, sistem informasi manajemen, sistem manajemen bassis data, septi hendarwat...06, sistem informasi manajemen, sistem manajemen bassis data, septi hendarwat...
06, sistem informasi manajemen, sistem manajemen bassis data, septi hendarwat...SeptiHendarwati
 

What's hot (18)

Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
 
01 Pengatantar Basis Data
01 Pengatantar Basis Data01 Pengatantar Basis Data
01 Pengatantar Basis Data
 
Materi 1 pengantar sistem basis data.docx
Materi 1 pengantar sistem basis data.docxMateri 1 pengantar sistem basis data.docx
Materi 1 pengantar sistem basis data.docx
 
SIM, Siti Aula, Prof.Dr.Ir.Hapzi Ali,MM,CMA, Pengertian DBSM, Universitas Mer...
SIM, Siti Aula, Prof.Dr.Ir.Hapzi Ali,MM,CMA, Pengertian DBSM, Universitas Mer...SIM, Siti Aula, Prof.Dr.Ir.Hapzi Ali,MM,CMA, Pengertian DBSM, Universitas Mer...
SIM, Siti Aula, Prof.Dr.Ir.Hapzi Ali,MM,CMA, Pengertian DBSM, Universitas Mer...
 
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
 
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
Sim, naomi yosepin, prof. dr. hapzi ali, cma, analisis dan alternatif pengemb...
 
Tugas sim, pratiwi rosantry,yananto mihadi putra,se, m.si, sistem manajemen b...
Tugas sim, pratiwi rosantry,yananto mihadi putra,se, m.si, sistem manajemen b...Tugas sim, pratiwi rosantry,yananto mihadi putra,se, m.si, sistem manajemen b...
Tugas sim, pratiwi rosantry,yananto mihadi putra,se, m.si, sistem manajemen b...
 
Tugas sim, viki anjarwati, yananto mihadi. p, sistem informasi manajemen basi...
Tugas sim, viki anjarwati, yananto mihadi. p, sistem informasi manajemen basi...Tugas sim, viki anjarwati, yananto mihadi. p, sistem informasi manajemen basi...
Tugas sim, viki anjarwati, yananto mihadi. p, sistem informasi manajemen basi...
 
TUGAS SIM, LISANIAH AMINI LISA'ILINA, YANANTO MIHADI PUTRA, SISTEM MANAJEMEN ...
TUGAS SIM, LISANIAH AMINI LISA'ILINA, YANANTO MIHADI PUTRA, SISTEM MANAJEMEN ...TUGAS SIM, LISANIAH AMINI LISA'ILINA, YANANTO MIHADI PUTRA, SISTEM MANAJEMEN ...
TUGAS SIM, LISANIAH AMINI LISA'ILINA, YANANTO MIHADI PUTRA, SISTEM MANAJEMEN ...
 
SIM, Mercu Buana, Aprilia Rahmawati, 43215120286 - keamanan jaringan dari hacker
SIM, Mercu Buana, Aprilia Rahmawati, 43215120286 - keamanan jaringan dari hackerSIM, Mercu Buana, Aprilia Rahmawati, 43215120286 - keamanan jaringan dari hacker
SIM, Mercu Buana, Aprilia Rahmawati, 43215120286 - keamanan jaringan dari hacker
 
Tugas sim masda alif araffi ( yananto mihadi putra) sistem manajemen basis ...
Tugas sim masda alif araffi ( yananto mihadi putra)   sistem manajemen basis ...Tugas sim masda alif araffi ( yananto mihadi putra)   sistem manajemen basis ...
Tugas sim masda alif araffi ( yananto mihadi putra) sistem manajemen basis ...
 
Basis Data Terdistribusi
Basis Data TerdistribusiBasis Data Terdistribusi
Basis Data Terdistribusi
 
Pertemuan 1 SBD
Pertemuan 1 SBDPertemuan 1 SBD
Pertemuan 1 SBD
 
TUGAS SIM, MARINI KHALISHAH KHANSA, YANANTO MIHADI PUTRA, SE, M.Si, SISTEM MA...
TUGAS SIM, MARINI KHALISHAH KHANSA, YANANTO MIHADI PUTRA, SE, M.Si, SISTEM MA...TUGAS SIM, MARINI KHALISHAH KHANSA, YANANTO MIHADI PUTRA, SE, M.Si, SISTEM MA...
TUGAS SIM, MARINI KHALISHAH KHANSA, YANANTO MIHADI PUTRA, SE, M.Si, SISTEM MA...
 
Tugas sim, intan komalasari,yananto mihadi p,sistem manajemen basis data, 2018
Tugas sim, intan komalasari,yananto mihadi p,sistem manajemen basis data, 2018Tugas sim, intan komalasari,yananto mihadi p,sistem manajemen basis data, 2018
Tugas sim, intan komalasari,yananto mihadi p,sistem manajemen basis data, 2018
 
Database dan manajemen database
Database dan manajemen databaseDatabase dan manajemen database
Database dan manajemen database
 
SIM - ROHMAD, Prof. Dr. Ir. HAPZI ALI, MM, CMA - SISTEM MANAJEMEN DATA BASE
SIM - ROHMAD, Prof. Dr. Ir. HAPZI ALI, MM, CMA - SISTEM MANAJEMEN DATA BASESIM - ROHMAD, Prof. Dr. Ir. HAPZI ALI, MM, CMA - SISTEM MANAJEMEN DATA BASE
SIM - ROHMAD, Prof. Dr. Ir. HAPZI ALI, MM, CMA - SISTEM MANAJEMEN DATA BASE
 
06, sistem informasi manajemen, sistem manajemen bassis data, septi hendarwat...
06, sistem informasi manajemen, sistem manajemen bassis data, septi hendarwat...06, sistem informasi manajemen, sistem manajemen bassis data, septi hendarwat...
06, sistem informasi manajemen, sistem manajemen bassis data, septi hendarwat...
 

Similar to DATABASE

Mengapa kita memerlukan basis data
Mengapa kita memerlukan basis dataMengapa kita memerlukan basis data
Mengapa kita memerlukan basis dataAhmad Saktia Yunus
 
penggunaan condition pada C++ (devc++) dan penjelasannya
penggunaan condition pada C++ (devc++) dan penjelasannyapenggunaan condition pada C++ (devc++) dan penjelasannya
penggunaan condition pada C++ (devc++) dan penjelasannyaAngga Joe Amstrong
 
Artikel tugas sim 6
Artikel tugas sim 6Artikel tugas sim 6
Artikel tugas sim 6Fridamodok31
 
Artikel Ilmiah Sistem Basis Data
Artikel Ilmiah Sistem Basis Data Artikel Ilmiah Sistem Basis Data
Artikel Ilmiah Sistem Basis Data Muhammad Fajar
 
Tugas sim, septi ayu ningtyas (43217110054), yananto mihadi p., s.e., m.si., ...
Tugas sim, septi ayu ningtyas (43217110054), yananto mihadi p., s.e., m.si., ...Tugas sim, septi ayu ningtyas (43217110054), yananto mihadi p., s.e., m.si., ...
Tugas sim, septi ayu ningtyas (43217110054), yananto mihadi p., s.e., m.si., ...ayutyas6
 
Pengantar Sistem Basis Data | Database
Pengantar Sistem Basis Data | DatabasePengantar Sistem Basis Data | Database
Pengantar Sistem Basis Data | DatabaseBambang Karyadi
 
Abdul fajri 43219110268 tm6
Abdul fajri 43219110268 tm6Abdul fajri 43219110268 tm6
Abdul fajri 43219110268 tm6AbdulFajri2
 
Materi1pengantarsistembasisdata 170426190436
Materi1pengantarsistembasisdata 170426190436Materi1pengantarsistembasisdata 170426190436
Materi1pengantarsistembasisdata 170426190436Rut Kristina
 
SIM, Rahma Kesumawati, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Data Base, UMB-2017
SIM, Rahma Kesumawati, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Data Base, UMB-2017SIM, Rahma Kesumawati, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Data Base, UMB-2017
SIM, Rahma Kesumawati, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Data Base, UMB-2017Rahma Kesumawati
 
Artikel sistem manajemen basis data
Artikel sistem manajemen basis dataArtikel sistem manajemen basis data
Artikel sistem manajemen basis dataMegaNurastuti
 
Sia implementasi aplikasi basis data relasional
Sia   implementasi aplikasi basis data relasionalSia   implementasi aplikasi basis data relasional
Sia implementasi aplikasi basis data relasionalTheresia Magdalena
 
Muhammad farhan fadhlillah 43218010171 tm 9
Muhammad farhan fadhlillah 43218010171 tm 9Muhammad farhan fadhlillah 43218010171 tm 9
Muhammad farhan fadhlillah 43218010171 tm 9FarhanFadhlillah1
 
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...ninikratna93
 
Bab i sistem manajemen basis data
Bab i sistem manajemen basis dataBab i sistem manajemen basis data
Bab i sistem manajemen basis dataMiftahul Khair N
 
Tugas sistem informasi manajemen feliks 43218110078 (6)
Tugas sistem informasi manajemen feliks 43218110078 (6)Tugas sistem informasi manajemen feliks 43218110078 (6)
Tugas sistem informasi manajemen feliks 43218110078 (6)felikstevanus
 
Artikel sim rania juita 43219110113 (16 10-2020)
Artikel sim rania juita 43219110113 (16 10-2020)Artikel sim rania juita 43219110113 (16 10-2020)
Artikel sim rania juita 43219110113 (16 10-2020)RaniaRaniaJuita
 

Similar to DATABASE (20)

Mengapa kita memerlukan basis data
Mengapa kita memerlukan basis dataMengapa kita memerlukan basis data
Mengapa kita memerlukan basis data
 
Database
DatabaseDatabase
Database
 
penggunaan condition pada C++ (devc++) dan penjelasannya
penggunaan condition pada C++ (devc++) dan penjelasannyapenggunaan condition pada C++ (devc++) dan penjelasannya
penggunaan condition pada C++ (devc++) dan penjelasannya
 
Artikel tugas sim 6
Artikel tugas sim 6Artikel tugas sim 6
Artikel tugas sim 6
 
Artikel Ilmiah Sistem Basis Data
Artikel Ilmiah Sistem Basis Data Artikel Ilmiah Sistem Basis Data
Artikel Ilmiah Sistem Basis Data
 
Makalah basis data
Makalah basis dataMakalah basis data
Makalah basis data
 
Tugas sim, septi ayu ningtyas (43217110054), yananto mihadi p., s.e., m.si., ...
Tugas sim, septi ayu ningtyas (43217110054), yananto mihadi p., s.e., m.si., ...Tugas sim, septi ayu ningtyas (43217110054), yananto mihadi p., s.e., m.si., ...
Tugas sim, septi ayu ningtyas (43217110054), yananto mihadi p., s.e., m.si., ...
 
Pengantar Sistem Basis Data | Database
Pengantar Sistem Basis Data | DatabasePengantar Sistem Basis Data | Database
Pengantar Sistem Basis Data | Database
 
Abdul fajri 43219110268 tm6
Abdul fajri 43219110268 tm6Abdul fajri 43219110268 tm6
Abdul fajri 43219110268 tm6
 
Materi1pengantarsistembasisdata 170426190436
Materi1pengantarsistembasisdata 170426190436Materi1pengantarsistembasisdata 170426190436
Materi1pengantarsistembasisdata 170426190436
 
SIM, Rahma Kesumawati, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Data Base, UMB-2017
SIM, Rahma Kesumawati, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Data Base, UMB-2017SIM, Rahma Kesumawati, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Data Base, UMB-2017
SIM, Rahma Kesumawati, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Data Base, UMB-2017
 
Artikel sistem manajemen basis data
Artikel sistem manajemen basis dataArtikel sistem manajemen basis data
Artikel sistem manajemen basis data
 
Sistem Manajemen Basis Data
Sistem Manajemen Basis DataSistem Manajemen Basis Data
Sistem Manajemen Basis Data
 
Sia implementasi aplikasi basis data relasional
Sia   implementasi aplikasi basis data relasionalSia   implementasi aplikasi basis data relasional
Sia implementasi aplikasi basis data relasional
 
Muhammad farhan fadhlillah 43218010171 tm 9
Muhammad farhan fadhlillah 43218010171 tm 9Muhammad farhan fadhlillah 43218010171 tm 9
Muhammad farhan fadhlillah 43218010171 tm 9
 
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
Sim, ninik ratnasari, hapzi ali, sistem manajemen database, universitas mercu...
 
Bab i sistem manajemen basis data
Bab i sistem manajemen basis dataBab i sistem manajemen basis data
Bab i sistem manajemen basis data
 
Tugas sistem informasi manajemen feliks 43218110078 (6)
Tugas sistem informasi manajemen feliks 43218110078 (6)Tugas sistem informasi manajemen feliks 43218110078 (6)
Tugas sistem informasi manajemen feliks 43218110078 (6)
 
Mbd
MbdMbd
Mbd
 
Artikel sim rania juita 43219110113 (16 10-2020)
Artikel sim rania juita 43219110113 (16 10-2020)Artikel sim rania juita 43219110113 (16 10-2020)
Artikel sim rania juita 43219110113 (16 10-2020)
 

DATABASE

  • 1. Dosen Pengampu : TUGAS FOLIO DATABASE Diusulkan oleh: Mokh Ikhwan 4111411030 Ulfinur Fatimah 4111411004 Dosen Pengampu : JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS NEGERI SEMARANG 2013 Riza Arifudin, S.Pd., M.Cs.
  • 2. 1 BAB 1 KONSEP DASAR BASIS DATA Basis data (atau database) adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut (A, Pratama, 2013:1). Menurut di (http://database.rizaarifudin.info) Basis data juga dapat didefinisikan sebagai sekumpulan data yang saling berhubungan, disimpan dengan minimum redundansi untuk melayani banyak aplikasi secara optimal. 1.1 Sistem Basis Data Sistem Manajemen Basis Data (SMBD) merupakan suatu perangkat lunak yang terdiri atas sekumpulan program untuk mengelola dan memelihara data di dalam suatu struktur yang digunakan oleh banyak aplikasi, bebas (independence) terhadap media penyimpanan dan metoda akses. Sistem tersebut menyusun elemen data di dalam struktur yang telah didefinisikan sebelumnya dan menyimpan relasi diantara elemen data yang berbeda di dalam basis data. Sebagai suatu perangkat lunak, SMBD merupakan sistem perangkat lunak dengan penggunaan yang bersifat umum (general-purposed) yang memfasilitasi proses pendefinisian, konstruksi, dan manipulasi basis data untuk berbagai aplikasi. Basis data dan perangkat lunak merupakan bagian dari sistem basis data, yang secara ringkas dapat dikatakan merupakan sistem penyimpanan record yang terkomputerisasi. Penyederhanaan sistem basis data digambarkan sebagai berikut: Program Aplikasi Pengguna Basis Data Sistem Manajemen Basis Data Gambar 1.2 Penyederhanaan Sistem Basis Data
  • 3. 2 Sistem basis data terdiri atas empat komponen, yaitu: a. Data: Sebagaimana telah dijelaskan sebelumnya, data untuk suatu basis data mempunyai karakteristik terintegrasi dan pemakaian bersama. Pada aplikasi yang relatip besar data cenderung digunakan oleh sistem multi-user, sedangkan pada aplikasi relatip kecil data cenderung digunakan oleh sistem single-user. Sistem multi-user ialah suatu sistem yang memungkinkan banyak pengguna (user) dapat mengakses basis data secara berbarengan (concurrent). Sistem single-user ialah suatu sistem dengan paling banyak satu pengguna dapat mengakses basis data pada sembarang waktu yang diberikan. b. Perangkat keras: Terdiri atas peralatan utama berupa penyimpanan bantu dan peralatan Input/Output (I/O), processor dan memory utama, serta peralatan pendukung (misalnya untuk peralatan jaringan atau peralatan komunikasi yang lain). c. Perangkat Lunak: Sebagaimana telah disebutkan sebelumnya, perangkat lunak untuk sistem basis data disebut SMBD, yang merupakan lapisan diantara basis data secara phisik dengan pemakai. Fungsi utama dari SMBD ialah untuk menjadi perisai bagi pengguna dari rincian perangkat keras, sehingga pengguna dengan pengetahuan minimum mengenai perangkat keras dapat menggunakan sistem basis data dengan mudah. d. Pengguna: Terdapat 3 macam pengguna sistem basis data, ialah:  Pemrogram aplikasi, yaitu yang bertanggung jawab menulis program aplikasi yang menggunakan basis data.  Pengguna akhir, yaitu pengguna yang berinteraksi dengan sistem basis data secara on-line melalui workstation atau terminal. Antarmuka banyak digunakan untuk mempermudah interaksi. Sedang untuk pengguna tertentu menggunakan fasilitas update data secara interaktif dengan bahasa query, karena lebih luwes dalam memberikan fungsi yang tidak disediakan oleh antarmuka. Bahasa query ialah bahasa standar yang digunakan untuk mendefinisikan dan memanipulasi data di dalam basis data.
  • 4. 3  Administrator Basis Data (Database Administrator), yaitu seseorang yang menyusun strategi dan putusan kebijakan mengenai data, dan menyediakan kebutuhan dukungan teknik untuk mengimplementasikan putusan yang dipilih. Administrator basis data bertanggung jawab terhadap penggunaan kewenangan akses ke basis data, mengkoordinasikan dan memantau penggunaan basis data, dan untuk menyediakan sumber-sumber perangkat lunak dan perangkat keras sesuai kebutuhan. Dengan demikian administrator basis data bertanggung jawab untuk semua kontrol sistem pada tingkat teknik. 1.2 Keuntungan Pendekatan Basis Data Di dalam pendekatan basis data, terdapat suatu tempat penyimpanan data tunggal yang dikelola. Data tersebut didefinisikan sekali dan kemudian diakses oleh bermacam pengguna dan aplikasi. Pendekatan basis data memberikan sejumlah keunggulan potensial dibandingkan dengan pemrosesan file tradisional. Keunggulan tersebut antara lain ialah: a. Redundansi data minimum: Redundansi yang merupakan cara penyimpanan data yang memunculkan beberapa masalah sebagaimana telah dijelaskan pada bagian sebelumnya. b. Konsistensi data: Dengan menghilangkan atau mengontrol redundansi, dapat dipangkas terjadinya inkonsistensi data. Jika diberlakukan redundansi yang terkontrol, sistem basis data menjalankan konsistensi dengan mengupdate setiap data yang dimiliki jika terjadi perubahan. c. Integrasi data: Di dalam suatu basis data, data disusun ke dalam suatu struktur logika tunggal, dengan relasi logika yang didefinisikan diantara objek data yang berhubungan. d. Pemakaian data bersama: Suatu basis data dimaksud untuk dipakai bersama oleh semua pengguna yang diberi kewenangan. e. Menjalankan pembakuan:
  • 5. 4 Dengan pendekatan basis data, terdapat otoritas untuk mendefinisikan dan men-jalankan pembakuan data. Semua perubahan terhadap data, misalnya nama data dan format, menjadi terkontrol. f. Mempermudah pengembangan aplikasi: Pendekatan basis data akan memangkas beaya dan waktu untuk pengembangan aplikasi baru. Pemisahan deskripsi data dari program aplikasi menyebabkan susunan data dapat diubah dan dikembangkan (dalam batas tertentu) tanpa perlu mengubah program aplikasi yang memproses data tersebut. g. Menyediakan antarmuka banyak pengguna: Karena bervariasinya pengguna, dengan tingkat pengetahuan teknis yang berbeda, basis data menyediakan antarmuka pengguna yang bervariasi pula. h. Menggambarkan relasi komplek diantara data: Suatu basis data mungkin mengandung sejumlah keanekaragaman data yang saling berhubungan di dalam banyak cara. Pendekatan basis data memberikan kemampuan menggambarkan suatu keanekaragaman relasi yang komplek diantara data dengan tetap memberikan kemudahan dan efisiensi di dalam pencarian kembali dan update data yang berhubungan. i. Menjalankan batasan keutuhan (integrity): Banyak aplikasi basis data mempunyai batasan keutuhan tertentu yang diberlakukan pada data. Suatu SMBD menyediakan kemampuan untuk mendefinisikan dan menjalankan batasan tersebut. j. Menyediakan backup dan pemulihan (recovery): Suatu SMBD menyediakan fasilitas untuk backup dan pemulihan data dari kerusakan perangkat keras, perangkat lunak, maupun kesalahan proses. 1.3 Resiko Pendekatan Basis Data Sebagaimana putusan-putusan yang lain, pendekatan basis data bukanlah tanpa risiko, dan risiko-risiko tersebut harus dikenali untuk dapat ditangani. Pendekatan basis data membawa risiko-risiko sebagai berikut: a. Spesialisasi baru:
  • 6. 5 Adopsi pendekatan basis data atau pembelian perangkat lunak SMBD memerlukan SDM dengan spesialisasi yang baru. Untuk memenuhinya perlu mencari tenaga baru atau dengan mengadakan pelatihan staf yang ada. b. Perlunya beaya awal (start-up cost): Beaya awal antara lain meliputi beaya untuk pengadaan perangkat keras, perangkat lunak, dan pelatihan. Bahkan untuk aplikasi yang komplek berpotensi memerlukan perangkat keras dan perangkat lunak dengan beaya yang relatip mahal. c. Perlunya konversi data: Resiko ini muncul apabila data yang sudah ada sebelumnya diperlukan untuk basis data (untuk kesinambungan proses), dan dengan sistem penyimpanan data sebelumnya yang belum sesuai dengan keperluan basis data. d. Perlunya backup: Backup atau salinan file ke media penyimpanan yang tidak aktif, berguna di dalam mengembalikan data yang rusak atau hilang, khususnya untuk data yang penting jika terjadi kerusakan data. Perangkat lunak SMBD atau prosedur tambahan dapat digu-nakan untuk keperluan tersebut. e. Meningkatnya kompleksitas data: Di dalam basis data terdapat puluhan bahkan ratusan file yang saling terintegras. Pengelola file tersebut relatip komplek. f. Data mudah diserang (vulnerable): Dibandingkan dengan pemrosesan file tradisional, basis data lebih mengandung kerawanan apabila terjadi masalah di dalam basis data, karena banyak aplikasi secara bersamaan akan terganggu bahkan dapat menjadi lumpuh atau tidak dapat berfungsi. g. Gangguan dengan adanya data bersama: Akses tumbukan untuk data bersama melalui beberapa program aplikasi dapat menyebabkan timbulnya beberapa masalah. h. Konflik organisasi: Basis data melibatkan beberapa bagian di dalam suatu organisasi. Perlu suatu konsensus untuk pendefinisian maupun “pemilikan” data. Tanpa konsensus tersebut, tanggung jawab data, khususnya di dalam pemeliharaannya menjadi tidak jelas.
  • 7. 6 Meskipun demikian, secara keseluruhan basis data memberikan pemecahan dalam mengatasi makin meningkatnya kebutuhan akan informasi, makin meluasnya aplikasi, keterkaitan antar aplikasi, dan tuntutan pemakai akan layanan yang semakin cepat dan mudah. Perkembangan teknologi komputer dan komunikasi yang sangat cepat menawarkan kemampuan yang dapat dimanfaatkan basis data untuk meningkatkan layanan pengolahan data. BAB II APLIKASI BASIS DATA Basis data merupakan sumber daya yang berharga, karena dapat digunakan untuk menghasilkan informasi. Pada kenyataannya basis data tidak diakses secara langsung, akan tetapi dilakukan dengan menggunakan aplikasi. Dengan kata lain aplikasi basis data merupakan pintu masuk ke dalam sumber daya basis data. 2.1 Komponen Sistem Aplikasi Basis Data a. Perangkat Keras, untuk menjalankan SMBD b. Program, mendukung berbagai aplikasi basis data diperlukan perangkat lunak berupa program komputer. Program aplikasi dikelompokkan menjadi dua, ialah - Program aplikasi yang dibuat dengan menggunakan bahasa pemrograman baku seperti Pascal, Visual Basic, Visual Dephi, Visual FoxPro dan lain-lain. Program tersebut mengakses SMBD melalui pemanggilan sub-routine. - Program aplikasi yang berisi program yang ditulis dengan menggunakan bahasa yang dimiliki oleh produk SMBD, misalnya dengan bahasa query/update yang interaktif. SMBD menyediakan fasilitas untuk menyimpan urutan perintah query/update tersebut. c. Data Data untuk aplikasi basis data ialah basis data itu sendiri. Struktur dari keseluruhan basis data disebut dengan schema atau conceptual view. Bagian dari struktur basis data yang diproses oleh suatu aplikasi disebut dengan
  • 8. 7 sub schema atau application view. Sub schema disebut juga dengan logical view. d. Prosedur Prosedur, Pemakai dan staf operasi memerlukan prosedur yang menjelaskan bagaimana sistem dijalankan. Misalnya jika terjadi kegagalan (failure) sistem, khususnya untuk sistem multi-user, maka prosedur yang harus disiapkan antara lain ialah: a) apa yang harus dikerjakan pertama kali, b) data apa yang perlu disimpan, dan c) bagaimana dengan transaksi yang sedang dikerjakan yang tidak dapat diproses selama terjadi kegagalan. Jika kondisi telah menjadi normal kembali, maka prosedur yang harus disiapkan ialah: a) berapa banyak pekerjaan yang harus dikerjakan ulang, dan b) data apa yang secara manual diperoleh selama terjadinya kegagalan perlu untuk dimasukkan ke dalam sistem sebelum transaksi yang baru dapat diproses. e. Orang Orang yang terkait dengan aplikasi basis data dikelompokkan sebagai berikut: a) Clientele adalah orang untuk siapa sistem dikembangkan. b) Pemakai ialah yang menggunakan sistem untuk memenuhi kebutuhan bisnis c) Personal Operasi mereka yang menjalankan komputer dan peralatan- peralatan yang berhubungan. Terdiri dari: operator komputer, personalia data kontrol, dan operator data entry. d) Personal Pengembang Sistem yang merancang dan mengimplementasikan basis data dan aplikasinya. e) Administrator Basis Data (ABD) yang berfungsi untuk melindungi basis data dan memecahkan konflik diantara pemakai. 2.2 Komponen Fungsional Aplikasi Basis Data Komponen sistem menyediakan tiga fungsi dari basis data, yaitu: a. mekanisme untuk updating data, Aplikasi basis data harus menyediakan suatu mekanisme updating data, yaitu yang terkait dengan kegiatan-kegiatan: memasukkan (entering), menghapus (deleting), dan mengganti (editing) basis data.
  • 9. 8 Terdapat Lima metode dalam peng-update-an data, yaitu : 1. Load Utility Bagian dari SMBD, metoda ini merupakan metoda primitive. Pemakai mengisi data dengan dipandu oleh nama data item yang muncul. 2. Menggunakan Formulir formulir tampilan di layar mempunyai format yang lebih teratur, posisi tampilan data item dapat dirancang sesuai kebutuhan, dan dilengkapi dengan petunjuk untuk pemandu. Kemampuan tersebut menjadikan tampilan pada layar lebih komunikatif. 3. Menggunakan Format Tabular (menampilkan sejumlah data dalam bentuk penampilan semacam matrik.) 4. Perintah query/update secara interaktif Perintah untuk mengakses program query/update dari SMBD, kemudian menuliskan perintah yang diperlukan untuk mengganti data sesuai keinginan. 5. Input dari file lain b. mekanisme untuk menampilkan atau display data, Terdapat tiga cara untuk menampilkan atau display data, yaitu: 1. Report Report merupakan ekstrak dari basis data, yang hasilnya dapat langsung dicetak ke printer, display pada layar monitor, dan disimpan ke media penyimpanan. 2. Respon ke Query suatu pelaksanaan perintah yang ditulis dengan bahasa query basis data. Bahasa ini sangat populer, dan pada Agustus 1986 menjadi standard dengan sebutan Structure Query Language (SQL) 3. Eksport ke Sistem lain. c. mekanisme untuk mengontrol pemrosesan aplikasi. Terdapat banyak cara untuk melakukan kontrol pemrosesan aplikasi, diantaranya ialah: 1. Menu Sebagai contoh pada susunan hierarchi menu dan sub-menu sebagai berikut: File Edit Open Add
  • 10. 9 New Modify Exit 2. Pemprograman Aplikasi Pemprograman aplikasi dapat dilakukan validasi item yang meliputi cek tipe data, cek batas atas/bawah (jika ada), cek validasi isian (domain isian), dan hubungan antar sub-isian (misalnya tanggal dengan bulan). 3. Mengurangi Kumpulan Perintah yang Tersedia Dengan menggunakan pemrograman visual, satu command atau lebih dapat dibuat enabled atau disabled. Mekanisme kontrol aplikasi sangat penting. Secara ringkas bentuk-bentuk kontrol yang dapat dilakukan ialah: - Membatasi view basis data, yaitu dengan hanya memberikan data yang diperlukan. - Membatasi akses ke aplikasi melalui password dan nomor account. - Mengajarkan aplikasi kepada pemakai hanya untuk yang diperlukan. - Membatasi pemrosesan melalui menu. - Membatasi pemrosesan melalui perancangan program aplikasi. - Membatasi kumpulan command yang dapat diaktifkan. Diharapkan dengan upaya-upaya tersebut, dapat lebih menjamin keutuhan dan keamanan basis data.
  • 11. 1 BAB III PEMODELAN DATA Model data adalah kumpulan tools yang secara konseptual untuk mendeskripsikan data, hubungan data, semantic data, dan konsistensi konstrain. Model data yang akan diuraikan pada bagian ini adalah meliputi : 3.1 Model Data Flat-File Basis data flat-file terdiri dari satu atau lebih file yang dapat dibaca, yang secara normal berbentuk format file text. Informasi pada suatu file-file disimpan sebagai fields, dengan fields-nya memiliki panjang konstan atau panjang bervariasi yang dipisahkan beberapa karakter (delimeter). Contoh 3.1 : 0123:Aris Puji Widodo:PS.Ilmu Komputer 1234:Djalal ER Riyanto:PS.Ilmu Komputer 2345:Kushartantya:PS.Ilmu Komputer 3456:Suhartono:PS.Ilmu Komputer 4567:Bambang Yismianto:PS.Ilmu Komputer 5678:Indriyati:PS.Ilmu Komputer 6789:Beta Noranita:PS.Ilmu Komputer 7890:Eko Adi Sarwoko:PS.Ilmu Komputer Pada contoh 3.1, terdapat 3 fields, untuk setiap fields dipisahkan dengan titik dua. Setiap fields memiliki panjang tidak konstan. Pada saat menggunakan fields separator, seharusnya fields seperatornya bukan merupakan karakter yang terdapat pada data. Kelemahan basis data flat-file:  Flat-file tidak menggunakan struktur data yang dengan mudah dapat direlasikan  Sulit untuk mengatur data secara efisien dan menjamin akurasi  Lokasi fisik fields data dengan file harus diketahui  Program harus dikembangkan untuk mengatur data 3.2 Model Data Hirarki Basis data Hirarki satu tingkat di atas basis data flat-file, dalam hal ini kaitanya dengan kemampuan untuk menemukan dan memelihara relasi antar kelompok data. Arsitektur basis data hirarki berdasarkan konsep hubungan parent/child. Pada basis data hirarki, suatu root table atau parent table berada apa struktur yang paling atas, terhubung ke child table yang dihubungkan dengan
  • 12. 2 data. Struktur model basis data hirarki terlihat seperti kebalikan dari struktur pohon seperti yang diberikan pada gambar 3.1. Publishers Authors Titles BookStores Inventory Orders Root table atau parent Child tables dari Root table Child tables dari level sebelumnya Gambar 3.1, Model Basis Data Hirarki Pada gambar 3.1 Publishers adalah sebagai root table. Publisher memiliki dua child table : Author dan BookStores. Publisher mempunyai beberapa orang Author yang dikontrak, dan mempunyai beberapa BookStores untuk mensuplai kebutuhan buku-buku. Titles adalah child dari Author, Inventory dan Orders adalah child dari BookStrores. Salah satu masalah yang muncul adalah terjadinya redudansi informasi Titles yang disimpan pada tabel Inventory, karena tidak ada hubungan langsung antara Authors dan BookStores. Kelebihan basis data hirarki dibandingkan flat-file: - Data dapat dengan cepat dilakukan retrieve - Integritas data mudah dilakukan pengaturan Kelemahan basis data hirarki dibandingkan flat-file: - Pengguna harus sangat familiar dengan struktur basis data - Terjadi redudansi data 3.3 Model Basis Data Jaringan Model basis data jaringan merupakan perbaikan dari model basis data hirarki, yaitu dengan menambahkan kemampuan root table untuk melakukan share relationships dengan child tables. Dalam hal ini child table dapat memiliki banyak root table dan untuk melakukan akses terhadap child table, tidak dibutuhkan lagi untuk mengakses root table terlebih dahulu. Untuk set structure dapat dilihat pada gambar 3.2.
  • 13. 3 Publishers Authors BookStores owner set structure members contract supply Gambar 3.2. Model Basis Data Jaringan Pada gambar 3.2. tabel Publishers memiliki 2 tabel : Authors dan BookStores. Authors dan BookStores adalah sebagai member dari tabel Publishers. Publishers meng-contract Authors untuk bekerja, dan Publishers akan men-supply buku-buku yang selesai dikerjakan ke BookStores. Publishers Authors Titles BookStores Inventory Orders Root table atau parent shared child table Child tables dari level sebelumnya Child tables dari level sebelumnya Gambar 3.3. Child Table yang Dilakukan Share Pada gambar 3.3. memberikan deskripsi child table atau members dapat dilakukan share oleh parent table. Tabel Titles dimiliki oleh Authors dan BookStores, karena Authors dan BookStores membutuhkan relasi dengan Titles. Walaupun 2 set structure dapat digunakan untuk mengakses tabel Titles, informasi book title hanya disimpan pada satu tabel, sehingga redudansi data direduksi. Kelebihan basis data jaringan: - Data lebih cepat diakses - User dapat mengakses data dimulai dari beberapa tabel - Mudah untuk memodelkan basis data yang komplek - Mudah untuk membentuk query yang komplek dalam melakukan retrieve data. Kelemahan basis data jaringan: - Struktur basis datanya tidak mudah untuk dilakukan modifikasi
  • 14. 4 - Perubahan struktur basis data yang telah didefinisikan akan mempengaruhi program aplikasi yang mengakses basis data - User harus memahami struktur basis data. 3.4 Model Basis Data Relasional Beberapa perbaikan ditambahkan pada model ini, yaitu sederhana dalam mengatur data, retrieve data, dan change data. Unit utama yang disimpan pada basis data adalah berbentuk tabel atau kelompok data yang saling berhubungan. Tabel terdiri baris dan kolom, baris adalah merepresentasikan tuple atau record pada tabel, dan kolom merepresentaksikan fields pada tabel. Tabel dapat berhubungan dengan tabel yang lain dengan menggunakan kunci. Model basis data relasional tidak memiliki parent/root teble, walaupun relasi antara parent table dan child table diperbolehkan. Parent table dapat memiliki banyak child table, dan demikian juga sebaliknya. Untuk representasi model basis data relasional diberikan pada gambar 3.4. Publishers Authors Titles BookStores Inventory Orders supply contract sell are ordered stocked inwrite Gambar 3.4. Model Basis Data Relasional Kelebihan basis data relasional: - Data sangat cepat diakses - Struktur basis data mudah dilakukan perubahan - Data direpresentasikan secara logik, user tidak membutuhkan bagaimana data disimpan. - Mudah untuk membentuk query yang komplek dalam melakukan retrieve data - Mudah untuk mengimplementasikan integritas data - Data lebih akurat - Mudah untuk membangun dan memodifikasi program aplikasi - Telah dikembangkan Structure Query Language (SQL). Kelemahan basis data relasional:
  • 15. 5 - Kelompok informasi/tables yang berbeda harus dilakukan joined untuk melakukan retrieve data - User harus familiar dengan relasi antar tabel - User harus belajar SQL 3.5 Model Basis Data Berorientasi Objek Model basis data berorientasi objek adalah suatu model basis data, dimana data didefinisikan, disimpan, dan diakses menggunakan pemrograman berorientasi objek. Pada gambar 3.5. diberikan ilustrasi mengenai contoh basis data berorientasi objek dan implementasinya. Basis data berorientasi objek didefinisikan dengan menggunakan bahasa pemrograman berorientasi objek, yaitu bahasa Java. Aplikasi End user juga di bangun dengan menggunakan bahasa berorientasi objek. Object database management system digunakan untuk membuat link antara basis data dan aplikasi. Database declarations using Java interaction Object declarations using Java Application code written using Java Java program compiler Application executables generated End user Database Gambar 3.5. Basis Data Berorientasi Objek Dua struktur dasar yang terdapat pada basis data berorientasi objek terdiri adalah dari objects dan literals. Objects adalah suatu struktur yang memiliki identifiers, object dapat diasosiasikan dengan object yang lain. Literals adalah nilai- nilai yang diasosiasikan dengan object dan tidak memiliki identifiers. Object dan literals diorganisasikan oleh suatu tipe, dimana setiap elemen memiliki properties yang sama, yang dapat dimodifikasi untuk setiap object. Class adalah ekuivalen dengan tabel pada basis data relasional. Operasi digunakan untuk mengambil nilai- nilai dari class yang lain, menambah nilai, dan untuk menghapus nilai. Ilustrasi bagaimana relasi data pada basis data berorientasi objek diberikan pada gambar 3.6.
  • 16. 6 Nama Class Properties Class Operasi / method Gambar 3.6. Model Data Berorientasi Objek Kelebihan basis data berorientasi objek:  Programmer hanya dibutuhkan memahami konsep berorientasi objek untuk mengkombinasikan konsep berorientasi objek dengan storage basis data relasional  Objek dapat dilakukan sifat pewarisan dari objek yang lain  Secara teoritis mudah untuk mengatur objek  Model data berorientasi objek lebih kompatibel dengan tools pemrograman berorientasi objek. Kelemahan basis data berorientasi objek: User harus memahami konsep berorientasi objek, karena basis data berorientasi objek tidak dapat bekerja dengan metoda pemrograman tradisional 3.6 Model Basis Data Relasional Objek Tujuan model basis data relasional objek dikembangkan adalah untuk mengkombinasikan konsep model basis data relasional dengan style pemrograman berorientasi objek. Pada gambar 3.7. memberikan ilustrasi contoh basis data relasional objek. Tabel employee memiliki 2 kolom yang memiliki tipe bentukan, yaitu empInfo yang bertipe Person dan addrInfo yang bertipe Address. Pada empInfo memiliki tipe Person, dimana Person memiliki kategori yang lebih spesifik: noId, firstName, dan lastName.
  • 17. 7 Gambar 3.7. Basis Data Relasional Objek Kelebihan basis data relasional objek: - Tipe bentukan dapat dibuat Kelemahan basis data relasional objek: - User harus memahami antara konsep berorientasi objek dengan relasional - Beberapa vendor mengimplementasikan konsep relasional objek tidak mendukung sifat pewarisan objek.
  • 18. 1 BAB IV MODEL ENTITY RELATIONSHIP Model data Entity-Relationship (E-R) terdiri dari sekumpulan obyek-obyek, yang disebut dengan entitas dan hubungan yang terjadi diantara obyek-obyek tersebut. Model data E-R terbagi menjadi tiga konsep dasar, yaitu : himpunan entitas, himpunan relationship, dan atribut. 4.1 Entitas (Entity) dan Himpunan Entitas (Entitas Set) Suatu entitas merupakan suatu obyek dasar atau individu yang mewakili sesuatu yang nyata eksistensinya dan dapat dibedakan dari obyek-obyek yang lain. Suatu entitas mempunyai sekumpulan sifat, dan nilai dari beberapa sifat tersebut adalah unik yang dapat mengidentifikasi entitas tersebut. Sebagai contoh : setiap mahasiswa pada suatu perguruan tinggi merupakan suatu entitas, dan NIM secara unik dapat menjadi identitas seorang mahasiswa Suatu entitas memiliki atribut. Atribut merupakan sifat-sifat atau properti yang dimiliki oleh entitas. Atribut inilah yang membedakan antara entitas yang satu dengan entitas yang lain. Sebagai contoh, entitas mahasiswa mempunyai atribut NIM, nama_mhs, alamat_mhs, tgl_lahir seperti yang diberikan pada table 4.1. Tabel 4.1. Himpunan Entitas Mahasiswa NIM Nama_mhs Alamat_mhs Tgl_lahir J2F004001 Thoriq Menoreh 9 Semarang 50236 24-9-1987 J2F004002 Pasha Beringin A2 Jakarta 10342 5-11-1986 J2F004003 Afifah Mawar II/7 Semarang 50234 16-8-1988 J2F004004 Rizky Buana 123 Bandung 20345 23-2-1987 J2F004004 Felix Bima I/21 Jakarta 10431 13-10-1988 Untuk setiap atribut, terdapat sekumpulan nilai yang disebut dengan domain, atau himpunan nilai dari atribut tersebut. Domain dari atribut nama-mahasiswa dapat berupa himpunan semua text-string dengan panjang yang telah ditentukan. Dengan demikian, suatu basis data terdiri dari sekumpulan himpunan entitas yang masing-masing terdiri dari sejumlah entitas dengan tipe yang sama. Sehingga suatu atribut dari suatu himpunan entitas merupakan suatu fungsi pemetaan dari himpunan entitas ke domain. Suatu atribut yang digunakan dalam model E-R, dapat dikarakterisasikan ke dalam tipe-tipe atribut sebagai berikut:  Atribut komposit dan atribut sederhana
  • 19. 2  Atribut sederhana yaitu atribut yang tidak diuraikan menjadi sub atribut, atau tidak dapat diuraikan menjadi atribut yang lain. Sedangkan atribut komposit adalah atribut yang dapat diuraikan menjadi beberapa sub atribut. Pada contoh di atas, nama_mhs merupakan atribut sederhana, sedangkan alamat_mhs merupakan atribut komposit karena dapat diuraikan menjadi beberapa sub atribut, yaitu alamat, nama_kota, kodepos.  Atribut bernilai tunggal (single-valued attribute) dan atribut bernilai banyak (multivalued attribute)  Atribut bernilai tunggal ditujukan pada atribut yang mempunyai paling banyak satu nilai untuk setiap baris data. Pada contoh data mahasiswa di atas, semua atribut merupakan atribut bernilai tunggal. Sedangkan atribut bernilai banyak adalah ditujukan pada atribut yang dapat berisi lebih dari satu nilai, tetapi mempunyai jenis yang sama. Contoh atribut bernilai banyak adalah jika kita menambahkan atribut hobi pada data mahasiswa. Seorang mahasiswa dapat memiliki satu hobi atau lebih dari satu hobi, bahkan dapat juga tidak mempunyai hobi.  Atribut null  Nilai null digunakan ketika suatu entitas tidak mempunyai suatu nilai untuk suatu atribut. Null juga menandakan bahwa suatu nilai atribut tidak ada atau tidak diketahui. Sebagai contoh, jika mahasiswa tidak mempunyai hobi, maka pada atribut hobi tidak ada nilainya.  Atribut turunan (Derived Attribute)  Atribut turunan adalah atribut yang nilainya diperoleh dari pengolahan atau dapat diturunkan atribut atau tabel lain yang berhubungan. Sebagai contoh adalah penambahan atribut angkatan pada tabel data mahasiswa. Nilai pada atribut angkatan dapat diketahui dari NIM mahasiswa. 4.2 Relasi (Relationship) dan Himpunan Relasi (Relationship Set) Relasi menunjukkan adanya hubungan di antara sejumlah entitas yang berasal dari sejumlah himpunan entitas yang berbeda. Misalnya, seorang mahasiswa dengan NIM = ‘J2F004001’ dan nama_mhs = ‘Thoriq’ (yang ada di himpunan entitas mahasiswa) mempunyai relasi dengan entitas mata kuliah dengan kode_mtkul = ‘KOM104’ dan nama_mtkul = ‘Algoritma Pemrograman’. Relasi dari kedua entitas tersebut mengandung arti bahwa mahasiswa tersebut sedang mengambil mata kuliah Algortima Pemrograman.
  • 20. 3 Kumpulan semua relasi di antara entitas-entitas yang terdapat pada himpunan entitas membentuk suatu himpunan relasi seperti yang diberikan pada table 4.2. Tabel 4.2. Himpunan Entitas Mata Kuliah Kode_mtkul Nama_mtkul sks Semester KOM304 Sistem Operasi 3 3 KOM104 Algoritma Pemrograman 3 1 KOM203 Pemrograman Internet 3 2 KOM103 Logika Informatika 3 1 4.3 Kardinalitas Relasi (Mapping Cardinalities) Kardinalitas merupakan jumlah maksimum entitas dimana entitas tersebut dapat berelasi dengan entitas pada himpunan entitas yang lain. Terdapat empat maca kardinalitas relasi yang terjadi antara himpunan entitas A dan himpunan entitas B, yaitu :  Satu ke Satu (One to one) Suatu entitas di dalam himpunan entitas A dihubungkan dengan paling banyak satu entitas di dalam hinpunan entitas B, dan entitas di dalam himpunan entitas B dihubungkan dengan paling banyak satu entitas dalam himpunan entitas A. a1 a4 a3 a2 b4 b3 b2 b1 Gambar 4.1. Kardinalitas Relasi Satu ke Satu  Satu ke banyak (One to many) Suatu entitas di dalam himpunan entitas A dihubungkan dengan lebih dari satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B hanya dapat dihubungkan dengan paling banyak satu entitas dalam himpunan entitas A.
  • 21. 4 a1 a3 a2 b4 b3 b2 b1 b5 Gambar 4.2. Kardinalitas Relasi Satu ke Banyak  Banyak ke Satu (Many to one) Suatu entitas di dalam himpunan entitas A dihubungkan dengan paling banyak satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B dapat dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A. a4 a3 a2 a1 a5 b1 b3 b2 Gambar 4.3. Kardinalitas Relasi Banyak ke Satu  Banyak ke Banyak (Many to many) Suatu entitas di dalam himpunan entitas A dapat dihubungkan dengan lebih dari satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B dapat dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A. a1 a4 a3 a2 b4 b3 b2 b1 Gambar 4.4. Kardinalitas Relasi Banyak ke Banyak
  • 22. 5 4.4 Kunci (Key) Kunci atau key merupakan satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data dengan unik. Jika suatu atribut menjadi kunci, maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama. Terdapat 3 macam kunci, yaitu: 1. Superkey, merupakan suatu himpunan yang terdiri dari satu atau lebih atribut yang dapat membedakan setiap baris data dengan unik dalam sebuah tabel. Sebagai contoh (NIM, nama_mhs, alamat_mhs, tgl_lahir), (NIM, nama_mhs, alamat_mhs), (NIM, nama_mhs), (nama_mhs), (NIM). 2. Candidate-key, merupakan himpunan atribut minimal yang dapat membedakan setiap baris data dengan unik dalam sebuah tabel. Sebagai contoh adalah (NIM), (nama_mhs). 3. Primary key, merupakan kunci yang paling unik, lebih ringkas, lebih sering dijadikan acuan. Primary key dapat dipilih dari salah satu dari candidate key. Dari contoh di atas yang paling tepat dijadikan primary key adalah (NIM). 4.5 Diagram Entity-Relationship (Diagram E-R) Suatu database, dapat digambarkansecara grafik dengan suatu diagram E-R. Komponen-komponen pada diagram E-R dengan notasi yang diberikan pada gambar 4.4.:  Persegi panjang, menggambarkan himpunan entitas.  Elips, menggambarkan atribut-atribut (atribut yang berfungsi sebagai kunci digarisbawahi).  Belah ketupat, menggambarkan himpunan relationship.  Garis, menggambarkan hubungan atribut ke entitas dan himpunan entitas ke himpunan relationship.  Kardinalitas relasi dapat digambarkan dengan banyaknya garis cabang atau dengan pemakaian angka, 1 untuk relasi satu, n untuk relasi banyak.
  • 23. 6 Himpunan Entitas E a Himpunan Relasi R atribut a sebagai key garis Gambar 4.4. Notasi Diagram E-R Sebagai contoh, relasi antara himpunan entitas Mahasiswa dengan himpunan Mata Kuliah. Himpunan relasinya disebut dengan “Belajar”. Pada relasi ini, seorang mahasiwa bisa mengambil lebih dari satu mata kuliah. Setiap mata kuliah dapat diambil lebih dari satu mahasiswa. Relasi tersebut diberikan pada gambar 4.5. Mahasiswa Belajar mata kuliah NIM nama_mhs tgl_lahiralamat_mhs NIM kode_mtkul nilai kode_mtkul nama_mtkul sks semester n n Gambar 4.5. Skema Diagram E-R 4.6 Himpunan Entitas Lemah (Weak Entitas Lemah) Himpunan entitas yang tidak memiliki atribut yang dapat berfungsi sebagai primary key disebut dengan himpunan entitas lemah. Himpunan entitas lemah berisi entitas-entitas yang kemunculannya tergantung pada keberadaannya dalam sebuah relasi terhadap entitas lain (entitas kuat). Sebagai contoh, pada tabel data Mahasiswa, dapat dilengkapi dengan entitas baru, yaitu hobi seperti yang diberikan pada gambar 4.6.
  • 24. 7 Mahasiswa NIM nama_mhs alamat_mhs tgl_lahir menyenangi NIM hobi hobi hobi 1 n Gambar 4.6. Penambahan Entitas hobi Data hobi dapat dikategorikan sebagai himpunan entitas lemah (digambarkan dengan kotak ganda), karena keberadaannya bergantung pada adanya relasi dengan entitas yang ada pada himpunan entitas mahasiswa. 4.7 Spesialisasi dan Generalisasi Suatu himpunan entitas mungkin mempunyai sub kelompok entitas yang berbeda dari entitas yang lain pada himpunan entitas tersebut. Suatu sub himpunan yang berada dalam himpunan entitas mungkin mempunyai atribut yang tidak dimiliki oleh semua entitas dalam himpunan entitas tersebut. Sebagai contoh, himpunan entitas Dosen dapat dibagi menjadi dua, yaitu dosen tetap dan dosen tidak tetap. Himpunan entitas dosen, bisa memiliki atribut nip, golongan, pangkat, tgl_masuk. Sedangkan untuk dosen tidak tetap, atribut- atribut tersebut tidak diperlukan. Adanya perbedaan tersebut menyebabkan entitas dosen tidak mungkin disatukan dalam sebuah himpunan entitas. Dari suatu himpunan entitas, dapat dilakukan pengelompokan yang dapat membentuk suatu himpunan entitas baru atau proses top down disebut dengan proses spesialisasi seperti pada gambar 4.7.
  • 25. 8 Dosen ISA Dosen tidak tetap Dosen Tetap top down Gambar 4.7. Spesialisasi Kebalikan dari spesialisasi adalah generalisasi, yaitu proses bottom up. Sebagai contoh adalah himpunan entitas mahasiswa sebenarnya dapat terdiri dari mahasiswa S1-regular dan mahasiswa S1-ekstensi pada gambar 4.8. Adanya spesialisasi dan generalisasi digambarkan dalam relasi khusus yang disebut dengan relasi ISA. Mahasiswa ISA Mahasiswa S1-Ekstensi Mahasiswa S1-Regular bottom up Gambar 4.8. Generalisasi 4.8 Agregasi Satu keterbatasan dari model E-R adalah tidak mungkin untuk mengekspresikan suatu himpunan relasi yang secara langsung menghubungkan sebuah himpunan entitas dengan sebuah himpunan relasi. Untuk mengatasi hal tersebut, digunakan suatu notasi khusus untuk menunjukkan adanya agregasi semacam itu. Sebagai contoh, relasi antara himpunan entitas mahasiswa dengan himpunan entitas mata kuliah. Terdapat beberapa mata kuliah yang mengandung kegiatan praktikum. Himpunan relasi “Kegiatan” dalam diagram ER berikut ini menunjukkan entitas
  • 26. 9 mahasiswa yang mengikuti kegiatan praktikum, karena sedang mengambil mata kuliah yang ada praktikumnya, seperti yang diberikan pada gambar 4.9. Mahasiswa Belajar Mata_Kuliah n Praktikum n Kegiatan nim kode_mtkul kode_prakt nilai kode_prakt nama_prakt n n Gambar 4.9. Agregasi
  • 27. 10 BAB V OPERATOR RELASI 5.1 Relasi Aljabar Operasi aljabar terdiri dari himpunan operator level tinggi yang dioperasikan pada suatu relasi. Setiap operator menggunakan satu atau dua relasi sebagai input dan menghasilkan relasi baru sebagai output. Codd mendefinisikan operator relasi terdiri dari delapan operator, dimana dibagi menjadi dua kelompok sebagai berikut : 1. Operasi tradisional, terdiri dari Union, Intersection, Difference, dan Cartesian Product. 2. operasi relasional khusus, terdiri dari Restrict, Project, Join, dan Devide. Untuk kedelapan operator tersebut diatas, akan diuraikan secara detil sebagai berikut : 1.a Union () AB adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A atau B atau kedua-duanya. Ilustrasi : (hasil relasi baru adalah bagian yang diberi warna) A B Gambar 5.1. Ilustrasi AB. Contoh 5.1. Diberikan relasi (tabel) A S SNAME STATUS CITY S1 Aris 20 Semarang S4 Eko 20 Semarang Relasi (Tabel) B S SNAME STATUS CITY S1 Aris 20 Semarang S2 Heni 10 Jakarta Maka AB adalah menghasilkan relasi baru : S SNAME STATUS CITY S1 Aris 20 Semarang S2 Eko 20 Semarang S4 Heni 10 Jakarta
  • 28. 11 1.b. Intersect () AB adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A dan B. Ilustrasi : (hasil relasi baru adalah bagian yang diberi warna) A B Gambar 5.2. Ilustrasi AB. Contoh 5.2. Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka AB adalah menghasilkan relasi baru : S SNAME STATUS CITY S1 Aris 20 Semarang I.c Difference (MINUS) A MINUS B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A, tetapi tidak terdapat pada B. Ilustrasi : (hasil relasi baru adalah bagian yang yang tidak diberi warna) A B Gambar 5.3. Ilustrasi A MINUS B. Contoh 5.3. Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A MINUS B adalah menghasilkan relasi baru : S SNAME STATUS CITY S4 Eko 20 Semarang Dan untuk B MINUS A adalah : S SNAME STATUS CITY S2 Heni 10 Jakarta 1.d Cartesian Product ( / TIMES)
  • 29. 12 A TIMES B adalah relasi yang terdiri dari semua himpunan tuples untuk setiap elemen relasi pada A dikombinasikan dengan semua elemen pada relasi B. Ilustrasi : P Q R Z K P P Z K Q Q Z K R R Z K Cartesian Product Gambar 5.4. Ilustrasi A TIMES B. Contoh 5.4. Dengan menggunakan tabel A dan B yang diberikan pada contoh 5.1., maka A TIMES B adalah menghasilkan relasi baru : A A A A B B B B S SNAME STATUS CITY S SNAME STATUS CITY S1 Aris 20 Semarang S1 Aris 20 Semarang S1 Aris 20 Semarang S2 Heni 10 Jakarta S4 Eko 20 Jakarta S1 Aris 20 Semarang S4 Eko 20 Jakarta S2 Heni 10 Jakarta 1.e Restriction ( ) Ekstraksi terhadap suatu tuples (baris) pada suatu relasi yang memenuhi kondisi tertentu. Kondisi untuk relasi, direpresentasikan menggunakan klausa WHERE dan dapat dikombinasikan dengan operator logika dan/atau matematika. Ilustrasi : Gambar 5.5. Ilustrasi Restriction. Contoh 5.5. Dengan menggunakan tabel A yang diberikan pada contoh 5.1., maka A WHERE CITY = ‘Semarang’ adalah menghasilkan relasi baru : S SNAME STATUS CITY S1 Aris 20 Semarang S4 Eko 20 Semarang Tuples (baris) yang memenuhi kondisi
  • 30. 13 Atau dapat juga dituliskan ke dalam bentuk : )()''( ASemarangCITY  1.f Projection ( ) Ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi kondisi tertentu. Ilustrasi : Atribut (kolom) yang memenuhi kondisi Gambar 5.6. Ilustrasi Projection. Contoh 5.6. Dengan menggunakan tabel A yang diberikan pada contoh 5.1., maka A [S,SNAME] adalah menghasilkan relasi baru : S SNAME S1 Aris S4 Eko Atau dapat juga dituliskan ke dalam bentuk : )(, ASNAMES 1.g Natural Join (JOIN) Membentuk relasi dari dua relasi yang terdiri dari semua kemungkinan kombinasi tuples, dimana tuples pada relasi yang kedua memenuhi suatu kondisi tertentu (memiliki nilai atribut yang sama). Ilustrasi : a1 b1 a2 a3 b1 b2 Natural Join b1 b2 c1 c2 b3 c3 a1 a2 b1 b1 a3 b1 c1 c1 c2 Gambar 5.7. Ilustrasi Natural Join. Jika suatu relasi yang tidak memiliki atribut yang memenuhi kodisi (memiliki nilai sama), maka A JOIN B adalah ekuivalen dengan A TIMES B. 1.h Devide (DEVIDEBY)
  • 31. 14 A DEVIDEBY B adalah relasi dengan heading (X) dan terdiri dari himpunan semua tuples (X : x) dari tuples (X : x, Y : y) pada relasi A untuk semua tuples (Y : y) pada relasi B. Ilustrasi : a Devide x y a a x y a z b x c y Gambar 5.8. Ilustrasi Devide. 5.2 Relasi Kalkulus Untuk melakukan manipulasi model relasional dapat dilakukan dengan relasi aljabar dan relasi kalkulus. Relasi aljabar dapat secara aktual untuk membentuk relasi yang diharapkan dari suatu relasi yang terdapat pada basis data, sedangkan relasi kalkulus memberikan notasi untuk memformulasikan definisi relasi yang diinginkan pada kondisi relasi yang diharapkan. Dalam hal ini, hanya dilakukan pendefinisian karakteristik kondisi yang diharapkan dan memisahkan penggunaan operasi-operasi relasi aljabar (Join, Projection, …) yang dieksekusi untuk mengkonstruksikan hasil. Dengan kata lain bahwa relasi kalkulus adalah merupakan deskriptif, sedangkan relasi aljabar adalah merupakan perspektif. Atau dapat juga dikatakan bahwa relasi kalkulus merepresentasikan kondisi suatu permasalahan (non-prosedural), sedangkan relasi aljabar memberikan prosedur untuk menyelesaikan permasalahan (prosedural). Kedua relasi tersebut adalah ekuivalen, tetapi berbeda dalam hal penerapannya saja. Relasi kalkulus digunakan untuk natural language, sedangkan relasi aljabar digunakan untuk bahasa pemrograman. Relasi kalkulus merupakan bahasa yang berbasiskan first order predicate calculus. Ekspresi menyatakan sifat dari hasil yang diharapkan, tanpa menentukan bagaimana hasil tersebut di proses. Relasi kalkulus memiliki cirri-ciri sebagai berikut : 1. First order calculus biasanya mempergunakan simbol-simbol predikat dan simbol- simbol fungsi. Untuk kaitannya dengan basis data : simbol fungsi tidak diperlukan dan predikat diinterprestasikan sebagai relasi. 2. Formula pada first order calculus dapat dibedakan ke dalam dua kelas :
  • 32. 15 a. Open formulas (free variable) b. Closed formulas atau sentences yang memiliki variable terbatas. Karena kalkulus dipergunakan sebagai bahasa query dan basis data bertujuan untuk instant maupun relasi lainnya, maka closed formulas tidak diperhatikan. Untuk open formulas dapat didefinisikan sebagai himpunan tuples elemen dari kondisi secara keseluruhan, yang dapat menghasilkan formula “TRUE”. 3. Karena definisi relasi yang berbeda dari teori himpunan dalam memunculkan nama atribut dan himpunan domain, maka digunakan notasi yang sedikit berbeda. 2.a Domain Relational Calculus (DRC) Ekspresi dalam DRC memiliki bentuk :  fxAxAxA kk |:,...,:,: 2211 dimana : f : formula, Boolean expression kxxx ,...,, 21 : variabel yang muncul pada f kAAA ,...,, 21 : atribut-atribut kk xAxAxA :,...,:,: 2211 : disebut list target dari formula, sebagai definisi struktur hasil ekspresi, dimana relasi kAAA ,...,, 21 berisi tuples dengan nilai kccc ,...,, 21 , yang secara berurutan mengganti nilai kxxx ,...,, 21 yang memenuhi f ( f =TRUE). Adapun untuk definisi singkat dari DRC adalah sebagai berikut : Simbol yang muncul pada formula adalah terdiri dari : konstan (elemen-elemen domain D), variabel (elemen-elemen dari himpunan berhingga V yang dihubungkan dengan domain D), nama relasi (tabel) dan atribut (berdasarkan skema basis data), operator perbandingan (=, ≠, >, >=, <, <=), penghubung logika (  (dan/konjugsi),  (atau/disjungsi), ⌐ (not/negasi), ada/beberapa (), dan semua ( )) Contoh 5.7. Diberikan skema basis data silsilah dinasti keluarga, dimana terdiri dari empat relasi (tabel) dan masing-masing memiliki key tunggal (atribut yang di beri garis bawah). REIGNS(Sovereign, From, To) PERSON(Name, Sex, Birth, Death)
  • 33. 16 FATHERHOOD(Father, Child) MOTHERHOOD(Mother, Child) REIGNS Sovereign From To James I 1603 1625 Charles I 1625 1648 Charles II 1660 1685 James II 1685 1688 Mary II 1688 1694 Anne 1702 1714 PERSON Name Sex Birth Death James I M 1566 1625 Elizabeth F 1590 1662 Charles I M 1600 1649 Charles II M 1630 1685 Mary F 1631 1659 James II M 1633 1701 Henrietta A F 1640 1670 Mary II F 1662 1694 Anne F 1665 1714 James F.E M 1686 1766 FATHERHOOD Father Child Lord Darnley James I James I Elizabeth James I Charles I Charles I Charles II Charles I Mary Charles I James II Charles I Herietta A James II Mary II James II Anne James II James F.E MOTHERHOOD Mother Child Mary Stuart James I Anne of Denmark Elizabeth Anne of Denmark Charles I Henrietta Maria Charles II Henrietta Maria Mary Henrietta Maria James II Henrietta Maria Herietta A Anne Hyde Mary II Anne Hyde Anne Mary of Modena James F.E
  • 34. 17 Kemudian dilakukan operasi manipulasi terhadap model relasional diatas menggunakan DRC sebagai berikut : [a] Mengambil nama dan tanggal lahir dari anggota keluarga yang berstatus female (F). Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagai berikut :     '':,:,:,:|:,: 2432131 FxxDxBxSexxNPERSONxBxN  Sehingga diperoleh hasil query dari ekspresi diatas adalah : Name Birth Elizabeth 1590 Mary 1631 Henrietta A 1640 Mary II 1662 Anne 1665 [b] Mengambil Nama, Sex, dan dates (birth, death, mulai dan berakhirnya kekuasaan) untuk semua keluarga Sovereigns. Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagai berikut :  |:,:,:,:,:,: 654321 xDxToxFromxBxSexxSovn  541 :,:,: xToxFromxSovnREIGNS  6321 :,:,:,: xDxBxSexxNPERSONS Sehingga diperoleh hasil query dari ekspresi diatas adalah : Name Sex Birth From To Death James I M 1566 1603 1625 1625 Charles I M 1600 1625 1648 1649 Charles II M 1630 1660 1685 1685 James II M 1633 1685 1688 1701 Mary II F 1662 1688 1694 1694 Anne F 1665 1702 1714 1714 [c] Mengambil nama-nama Sovereigns yang ayahnya diketahui, tettapi tidak terdapat pada list sebagai anggota dinasti. Dengan menggunakan formula secara DRC, maka query diatas diekspresikan sebagai berikut :  |: 1xSovn
  • 35. 18  431 :,:,: xToxFromxSovnREIGNS  12 :,: xCxFDFATHERGHOO      7652765 :,:,:,: xDxBxSexxNPERSONxxx  Sehingga diperoleh hasil query dari ekspresi diatas adalah : Sovereign James I 5.2.2. Tuple Relational Calculus (TRC) Ekspresi dalam TRC memiliki bentuk :   fXx | dimana : f : Merupakan formula x : Merupakan variabel tuple, satu-satunya variabel tuple di f X : Satu set atribut yang berkorespodensi dengan x . Nilai dari ekspresi adalah relasi dalam X , yang berisi semua tuples yang menghasilkan TRUEf  . Contoh 5.8. Suatu ekspresi yang dituliskan dalam DRC :  |:,:,: 321 xToxFromxSovn  321 :,:,: xToxFromxSovnREIGNS dapat dituliskan ke dalam ekspresi TRC dengan menggunakan satu variabel :     xREIGNSToFromSovnx |,, Contoh 5.9. Suatu ekspresi yang dituliskan dalam DRC :  |:,:,:,:,:,: 654321 xDxToxFromxBxSexxSovn  541 :,:,: xToxFromxSovnREIGNS  6321 :,:,:,: xDxBxSexxNPERSONS dapat dituliskan ke dalam ekspresi TRC :   |,,,,,1 DToFromBSexSovnx    )(,, 22 xREIGNSToFromSovnx  )..()..()..( 121212 ToxToxFromxFromxSovnxSovnx
  • 36. 19    )(,,, 33 xPERSONSDBSexNamex )..()..()..()..( 13131313 DxDxBxBxSexxSexxSovnxNamex  Catatan : Perbedaan antara DRC dan TRC adalah dalam membentuk variabel “RANGE” melalui domain bukan relasi. 5.3 Persamaan dan Perbedaan Relasional Aljabar dan Relasi Kalkulus 1. Relasional kalkulus dan relasional aljabar dikelompokan pada bahasa yang “Relationally Complete”, artinya : Setiap ekspresi relasional kalkulus dapat direduksi pada bentuk relasional aljabar yang ekuivalen dengan ekspresi tersebut. 2. Ekspresi relasional kalkulus diselesaikan dengan menggunakan predikat kalkulus, sedangkan ekspresi relasional aljabar diselesaikan dengan memanfaatkan operator pada relasi sebagai operannya.
  • 37. 20 BAB VI STRUCTURE QUERY LANGUAGE (SQL) 6.1 Struktur Dasar SQL adalah didasarkan pada himpunan operasi-operasi relasional yang telah dilakukan modifikasi dan perbaikan. Struktur dasar SQL terdiri dari tiga klausa, yaitu SELECT, FROM, dan WHERE :  SELECT berkorespondensi dengan operasi Projection pada relasional aljabar. SELECT digunakan untuk menampilkan list atribut pada hasil query.  FROM berkorespondensi dengan operasi Cartesian product pada relasional aljabar. FROM digunakan sebagai list suatu relasi (tabel) yang akan di proses dan di evaluasi.  WHERE berkorespondensi dengan operasi Selection pada relasional aljabar. WHERE terdiri dari predikat yang meliputi atribut dalam relasi yang muncul pada klausa FROM. Secara umum tipikal query dengan menggunakan SQL memiliki bentuk sebagai berikut: SELECT nAAA ,...,, 21 FROM nrrr ,...,, 21 WHERE P Dimana : nAAA ,...,, 21 : merepresentasikan atribut nrrr ,...,, 21 : merepresentasikan relasi (tabel) P : adalah predikat, dengan P = TRUE. Sintak query SQL adalah ekuivalen dengan ekspresi relasional aljabar sebagai berikut:   nPAAA rrrn  ...21,...,, 21  Untuk contoh-contoh yang diberikan pada modul ini, akan menggunakan skema basis data supplier dan part yang diberikan pada gambar 6.1.
  • 38. 21 Tabel SUPPLIER Tabel PARTS Tabel SHIPMENT Gambar 6.1. Skema Basis Data Supplier dan Part
  • 39. 22 1.1 Klausa Select Diberikan suatu query sederhana dengan menggunakan skema basis data pada gambar 6.1, yaitu menentukan nama-nama semua kota (CITY) yang terdapat pada tabel PARTS: SELECT CITY FROM PARTS Hasil query perintah SQL diatas adalah suatu relasi (tabel), yaitu : Hasil query di atas akan mengambil semua tuples yang terdapat pada header (atribut) CITY, sehingga duplikasi tuple terjadi. Untuk menghindari duplikasi yang terdapat pada tuple dapat dilakukan dengan menambahkan DISTINCT setelah SELECT. Jika sintak query di atas di rubah menjadi : SELECT DISTINCT CITY FROM PARTS maka hasil query-nya menjadi : Menampilkan semua atribut yang terdapat pada relasi sebagai hasil query, dapat digunakan simbol asterisk ‘*’. Misalkan diberikan sintak SQL : SELECT COLOR, WEIGHT * 10 FROM PARTS Sehingga akan diperoleh relasi sebagai hasil query sebagai berikut :
  • 40. 23 1.2 Klausa Where Klausa WHERE digunakan untuk menentukan predikat atau kriteria yang harus di penuhi suatu relasi sebagai hasil query. Klausa ini bersifat opsional, yaitu dapat menggunakan klausa WHERE atau tidak. Jika tidak menggunakan klausa WHERE, maka query dilakukan untuk semua tuples pada tabel yang disebutkan pada klausa FROM. Misalkan, untuk menampilkan semua tuples SUPPLIER yang memiliki STATUS = 20. Perintah SQL-nya adalah : SELECT * FROM SUPPLIER WHERE STATUS = 20 Hasil query perintah SQL diatas adalah : Nilai predikat yang terdapat klausa WHERE, untuk tipe string harus diberikan tanda petik tunggal, sedangkan untuk tipe numerik tidak menggunakan tanda petik tunggal. Misalkan, untuk menampilkan semua tuples SUPPLIER yan berada di semarang : Perintah SQL-nya adalah : SELECT * FROM SUPPLIER WHERE CITY = ‘Semarang’ Hasil query perintah SQL diatas adalah :
  • 41. 24 Predikat pada klausa WHERE dapat dikombinasikan dengan operator relasi lainnya, seperti <, <=, >, >=, <>, dan operator logika, seperti AND, OR, NOT. Misalkan, untuk menampilkan semua SUPPLIER yang memiliki STATUS = 30, tetapi berada pada kota(CITY) Yogyakarta : Perintah SQL-nya adalah : SELECT * FROM SUPPLIER WHERE STATUS = 30 AND CITY = ‘Yogyakarta’ Hasil query perintah SQL diatas adalah : Klausa WHERE dapat digunakan untuk melakukan query dengan predikat yang berbentuk suatu range nilai tertentu, yaitu menambahkan klausa BETWEEN.Misalkan, menampilkan SUPPLIER yang memiliki STATUS antara 10 sampai dengan 30 : Perintah SQL-nya adalah : Hasil query perintah SQL diatas adalah : Klausa WHERE dapat digunakan untuk melakukan query dengan predikat yang berbentuk range nilai tertentu, yaitu menambahkan klausa BETWEEN.Misalkan, menampilkan SUPPLIER yang memiliki STATUS antara 10 sampai dengan 30 : Perintah SQL-nya adalah : SELECT * FROM SUPPLIER WHERE STATUS BETWEEN 20 AND 30 Hasil query perintah SQL diatas adalah :
  • 42. 25 Untuk atribut yang bertipe string dapat dilakukan suatu pencarian dengan pola tertentu, yaitu dengan memanfaatkan karakter ‘%’ atau ‘_’ (underscore) dan menambahkan klausa LIKE pada klausa WHERE :  ‘%’ untuk semua substring  ‘_’ untuk semua karakter pada posisi yang sesuai. Misalkan, untuk menampilkan semua tuples SUPPLIER yang kotanya (CITY) di awali dengan huruf ‘S’ : Perintah SQL-nya adalah : SELECT * FROM SUPPLIER WHERE STATUS LIKE ‘S%’ Hasil query perintah SQL diatas adalah : Sedangkan untuk menampilkan semua SUPPLIER yang karakter kedua dari kota (CITY) adalah karakter ‘o’ : Perintah SQL-nya adalah : SELECT * FROM SUPPLIER WHERE STATUS LIKE ‘_o%’ Hasil query perintah SQL diatas adalah : 1.3 Klausa From Klausa FROM digunakan untuk menentukan tabel yang akan dijadikan sebagai sumber untuk pencarian data. Misalkan, untuk menampilkan semua SUPPLIER yang melakukan SHIPMENT dengan jumlah kuantitasnya lebih besar 300 : Perintah SQL-nya adalah : SELECT * FROM SUPPLIER, SHIPMENT WHERE SUPPLIER.SCODE=SHIPMENT.SCODE AND SHIPMENT.QTY > 300 Hasil query perintah SQL diatas adalah :
  • 43. 26 Dalam melakukan query untuk dua tabel atau lebih tidak dapat dilakukan sembarang. Tabel-tabel yang digunakan harus memiliki keterhubungan. Pada contoh query di atas keterhubungan diwakili oleh nilai yang sama pada atribut SCODE yang diwakili oleh kedua tabel yang digunakan. Ekspresi SUPPLIER.SCODE adalah menunjukan nilai SCODE yang berasal dari tabel SUPPLIER, sedangkan SHIPMENT.SCODE adalah menunjukan nilai SCODE yang berasal dari tabel SHIPMENT. Untuk menghindari ketidakjelasan atribut yang terlihat pada relasi sebagai hasil query, dapat dilakukan dengan cara menyebutkan nama tabel yang terdapat pada klausa FROM. Dan untuk menyederhanakan cara penulisan, dapat digunakan nama alias untuk tabel-tabel yang terdapat pada klausa FROM. 6.2 Fungsi Agregasi Dalam melakukan suatu query, terkadang dibutuhkan untuk melakukan perhitungan jumlah tuples, total nilai suatu atribut, nilai atribut terbesar atau terkecil, dan menentukan nilai rata-rata suatu atribut. Untuk memenuhi kondisi-kondisi di atas, SQL sebagai bahasa query menyediakan fungsi-fungsi agregasi sebagai berikut.  AVG Untuk memperoleh nilai rata-rata suatu atribut yang bertipe numerik.  MIN Untuk memperoleh nilai terkecil suatu atribut yang bertipe numerik.  MAX Untuk memperoleh nilai terbesar suatu atribut yang bertipe numerik.  SUM Untuk memperoleh nilai total suatu atribut yang bertipe numerik.  COUNT Untuk memperoleh nilai banyaknya tuples. Untuk peggunaan fungsi-fungsi agregasi di atas, diberikan contoh-contoh penerapan fungsi agregasi pada suatu query sebagai berikut:  Menghitung banyaknya tuples pada tabel SHIPMENT
  • 44. 27 Perintah SQL-nya adalah : SELECT COUNT(*) FROM SHIPMENT Hasil query perintah SQL diatas adalah :  Menampilkan total berat (WEIGHT) untuk semua PARTS Perintah SQL-nya adalah : SELECT SUM(WEIGHT) FROM PARTS Hasil query perintah SQL diatas adalah :  Menghitung rata-rata kuantitas (QTY) untuk semua SHIPMENT Perintah SQL-nya adalah : SELECT AVG(QTY) FROM SHIPMENT Hasil query perintah SQL diatas adalah :  Menentukan nilai STATUS yang terbesar untuk SUPPLIER Perintah SQL-nya adalah : SELECT MAX(STATUS) FROM SUPPLIER Hasil query perintah SQL diatas adalah :  Menentukan nilai kuantitas (QTY) yang terkecil untuk SHIPMENT Perintah SQL-nya adalah : SELECT MIN(QTY) FROM SHIPMENT Hasil query perintah SQL diatas adalah :
  • 45. 28 Fungsi agregasi dapat juga dikombinasikan dengan klausa GROUP BY, untuk menyatakan pengelompokan tuple hasil query. Misalkan, untuk menampilkan banyaknya tuple dan jumlah kuantitas (QTY) untuk SHIPMENT yang dikelompokan berdasarkan PARTS (PCODE) dengan urutan secara menaik: Perintah SQL-nya adalah : SELECT PCODE, COUNT(*), SUM(QTY) FROM SHIPMENT GROUP BY PCODE ORDER BY PCODE Hasil query perintah SQL diatas adalah : 6.3 Nilai Null Nilai NULL pada suatu query dapat diperlakukan secara khusus, yaitu dapat juga diperlakukan untuk query menggunakan ekspresi SQL. Misalkan, menampilkan atribut CITY dari tabel SUPPLIER yang masih kosong : Perintah SQL-nya adalah : SELECT DISTINCT SCODE FROM SUPPLIER WHERE CITY is NULL Hasil query perintah SQL diatas adalah : Tidak menampilkan hasil apapun, karena semua atribut CITY sudah diisi dengan data. Dapat juga dilkakukan untuk menghitung banyaknya nama SUPPLIER yang STATUS- nya sudah terisi (tidak kosong) : Perintah SQL-nya adalah : SELECT COUNT(*) FROM SUPPLIER WHERE STATUS is NOT NULL
  • 46. 29 6.4 Manipulasi Data (DML) 4.1 Menambahkan Tuple (Record) Sintak SQL untuk penambahan tuple baru ke suatu tabel adalah : INSERT INTO   nAAAt ,...,, 21 VALUES  nVVV ,...,, 21 dimana :  t : nama relasi (tabel) yang akan dilakukan penambahan tuple  nAAA ,...,, 21 : nama-nama atribut yang akan di isi nilainya  nVVV ,...,, 21 : nilai-nilai yang akan diisikan pada atribut-atribut. Nama atribut-atribut pada tabel dapat tidak dituliskan, jika akan mengisikan nilai ke semua atribut dengan urutan atribut sesuai dengan pendefinisian struktur yang dilakukan pada saat awal pembuatan tabel. Tetapi jika urutan atribut berbeda atau atribut yang akan diisikan nilainya tidak pada semua atribut, maka nama-nama atribut yang akan di isi nilainya harus dituliskan. Misalkan, untuk menambahkan tuple pada tabel SUPPLIER : Perintah SQL-nya adalah : INSERT INTO SUPPLIER VALUES ('S6','YOSHINTA',20,'Semarang') Hasil query perintah SQL diatas adalah : Ekspresi perintah SQL di atas, dapat juga dituliskan menggunakan ekspresi SQL : INSERT INTO SUPPLIER (SCODE,SNAME,STATUS,CITY) VALUES ('S6','YOSHINTA',20,'Semarang') Untuk nama atribut yang tidak disebutkan pada perintah INSERT, atribut-atribut tersebut akan di isi dengan nilai NULL. Misalkan, perintah SQL sebagai berikut : INSERT INTO SUPPLIER (SCODE,SNAME,STATUS) tuple baru yang ditambahkan pada tabel SUPPLIER
  • 47. 30 VALUES ('S7','MIRANTHI',20) Hasil query perintah SQL diatas adalah : 4.2 Menghapus Tuple (Delete) Sintak SQL untuk menghapus tuple pada suatu tabel adalah : DELETE FROM t [ WHERE P ] 4.3 Mengubah Tuple (Record) Sintak SQL untuk mengubah nilai atribut pada tuple dari sebuah tabel adalah : UPDATE t SET assignment [ WHERE P ] 6.5 Transaksi Perintah transaksi yang harus digunakan sebagai akhir transaksi adalah : - commit [ work ] Operasi-operasi manipulasi data yang telah dilakukan, akan di simpan secara permanen ke dalam disk dan transaksi dinyatakan selesai. Setelah transaksi commit, secara otomatis transaksi baru di mulai. - rollback [ work ] Operasi-operasi manipulasi data yang belum dilakukan commit akan dibatalkan (tidak disimpan secara permanen ke dalam disk). Sehingga kondisi basis data yang di simpan pada disk tidak akan mengalami perubahan, seperti sebelum transaksi rollback di eksekusi. Work pada perintah transaksi commit dan rollback bersifat opsional dan tidak memberikan pengaruh terhadap makna kedua perintah transaksi tersebut. nilai NULL atribut CITY yang ditambahkan pada tabel SUPPLIER
  • 48. 31 6.6 DDL DDL adalah perintah-perintah untuk mendefinisikan objek-objek basis data, dimana tidak hanya sekumpulan relasi (tabel), tetapi juga tentang informasi setiap tabel, yaitu meliputi sebagai berikut :  Skema untuk setiap tabel  Domain nilai untuk setiap atribut  Integritas constraints  Indek untuk setiap tabel  Informasi security dan authorization untuk setiap tabel  Struktur fisik penyimpanan untuk setiap tabel pada disk. Sintak SQL untuk membuat tabel di dalam basis data adalah : CREATE TABLE   nn DADADAt ,...,, 2211 dimana :  t : adalah nama tabel  nAAA ,...,, 21 : adalah nama-nama atribut yang dimiliki oleh tabel t  nDDD ,...,, 21 : adalah domain nilai masing-masing atribut yang ditentukan berdasarkan tipe data Untuk domain tipe data meliputi sebagai berikut :  char(n) Tipe string dengan panjang tetap sebesar n karakter (jika panjang karakter yang diisikan kurang dari n, maka sisanya di isi dengan spasi)  varchar(n) Tipe string dengan panjang fleksibel, tetapi maksimal sebanyak n karakter.  int atau integer Tipe integer 2 byte.  smallint Tipe integer 1 byte.  real, double, precision Tipe pecahan decimal floating point.  float(n) Tipe pecahan decimal floating point dengan presisi n digit.  date Tipe tanggal (terdiri 4 digit tahun, bulan, dan tanggal).
  • 49. 32  time Tipe waktu (terdiri dari jam, menit, dan detik) Misalkan, untuk membuat tabel SUPPLIER : Perintah SQL-nya adalah : CREATE TABLE SUPPLIER ( SCODE char(3), SNAME varchar(20), STATUS int, CITY varchar (15)) Dalam melakukan pembuatan tabel dapat juga dilakukan untuk menambahkan suatu indek primer berdasarkan atribut tertentu, yaitu dengan cara menggunakan klausa PRIMARY KEY. Misalkan, pada tabel SUPPLIER di atas memiliki indek berdasarakan atribut SCODE : Perintah SQL-nya adalah : CREATE TABLE SUPPLIER ( SCODE char(3) NOT NULL, SNAME varchar(20), STATUS int, CITY varchar (15), PRIMARY KEY (SCODE)) Jika suatu tabel memiliki indek secara komposit (gabungan), maka dilakukan dengan cara menuliskan semua atribut pada kalusa PRIMARY KEY. Misalkan pada tabel SUPPLIER memiliki indek SCODE dan SNAME : Perintah SQL-nya adalah : CREATE TABLE SUPPLIER ( SCODE char(3) NOT NULL, SNAME varchar(20) NOT NULL, STATUS int, CITY varchar (15), PRIMARY KEY (SCODE,SNAME)) Keberadaan tabel yang telah dibuat dapat dibatalkan atau di hapus dengan menggunakan perintah SQL : DROP TABLE t t adalah nama tabel yang di hapus. Misalkan tabel SUPPLIER akan dihapus : Perintah SQL-nya adalah :
  • 50. 33 DROP TABLE SUPPLIER Struktur tabel yang telah dibut dapat dilakukan perubahan, tanpa harus menghapus tabel dan kemudian membangunnya kembali dengan definisi struktur yang baru. Perubahan struktur menjadi lebih praktis, dan juga tidak mengakibatkan hilangnya data yang sudah ada pada tabel (jika data sudah ada). Perubahan struktur terdiri dari : Penambahan atribut Sintak SQL : ALTER TABLE t ADD A D t adalah nama tabel yang dilakukan perubahan, A adalah nama atribut, dan D adalah tipe data untuk atribut A . Penghapusan atribut Sintak SQL : ALTER TABLE t DROP A t adalah nama tabel yang dilakukan perubahan, dan A adalah nama atribut. Misalkan, untuk menambahkan atribut DATE_OF_BORN pada tabel SUPPLIER : Perintah SQL-nya adalah : ALTER TABLE SUPPLIER ADD DATE_OF_BORN date Dan untuk menghapus atribut DATE_OF_BORN pada tabel SUPPLIER, dilakukan dengan perintah SQL : ALTER TABLE SUPPLIER DROP DATE_OF_BORN
  • 51. 34 BAB 7 NORMALISASI DATA Normalisasi data merupakan suatu proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali, dan mengacu pada cara data item dikelompokkan ke dalam struktur record. Anomali merupakan efek samping yang tidak diharapkan, yang ditimbulkan dari suatu proses. Terdapat tiga macam anomali, ialah:  Anomali Peremajaan  Anomali Anomali  Anomali Penghapusan Sebagai contoh : PERWALIAN NIM NAMA NODOSEN DOSEN 20001 MARLINA 131 DRA DINA MSC 20002 HARDIMIN 132 BADRUN SSI MSI 20003 KOMARUDIN 133 DRS AMINUDIN 20004 HUSNI 131 DRA DINA MSC 20005 DANY 131 DRA DINA MSC 20006 INDAH 132 BADRUN SSI MSI  Ketergantungan Fungsional Suatu ketergantungan fungsional ialah suatu relationship diantara atribut. Dengan ketergantungan fungsional, jika diberikan nilai suatu atribut maka akan dapat diperoleh atau dicari nilai dari atribut lain. Atau secara lebih formal ketergantungan fungsional didefinisikan sebagai berikut: R suatu relasi, x dan y himpunan bagian dari himpunan atribut R. y mempunyai ketergantungan fungsional (KF) pada x, atau: x  y jika dan hanya jika setiap nilai x di dalam R mempunyai asosiasi dengan tepat satu nilai y di dalam R.
  • 52. 35 x disebut determinant, yaitu sebagai atribut penentu. y disebut dependent, yaitu sebagai atribut yang bergantung. sebagaimana berikut : x y Diagram Ketergantungan Fungsional Contoh: Jika diberikan relasi berikut: MHS (nim, nama, tgllahir, alamat, kodepos, kabupaten, propinsi) Dari relasi di atas, maka: nim  nama nim  tgllahir nim  alamat nim  kodepos nim  kabupaten nim  propinsi dan juga kodepos  kabupaten kodepos  propinsi merupakan contoh-contoh yang memenuhi ketentuan ketergantungan fungsional. Sedangkan tgllahir  alamat tidak memenuhi ketentuan di dalam ketergantungan fungsional, karena pada kenyataan-nya dapat terjadi lebih dari satu orang dengan tgllahir yang sama  Kunci (Key) X Y
  • 53. 36 Secara umum, suatu kunci ialah suatu atribut atau group atribut yang secara fungsional menentukan atribut non-key. NILAI NIM KODEMTK NIL_HURUF 20001 MTK1 A 20001 MTK3 B 20002 MTK3 B 20003 MTK1 C 20003 MTK2 B 20004 MTK3 C 20005 MTK1 A 20006 MTK2 B 20006 MTK3 B  Unnormalized Unnormalized ialah suatu relasi yang mengandung atribut dengan nilai non-atomic, dan atau mempunyai group atribut berulang. Nilai atribut atomic ialah nilai suatu atribut yang tidak dapat dibagi menjadi komponen-komponen yang lebih kecil. Sehingga nilai atribut composite dan nilai atribut multivalued tidak diijinkan disini. Berikut adalah contoh relasi yang mengandung atribut dengan nilai non-atomic, yang disebabkan adanya atribut-atribut composite dan atribut multivalued. nama_jalan kota kode_pos KENDARAAN NOPOLISI PEMILIK ALAMAT WARNA H3003YA IR HARY D. JL MELATI 234,PATI,33890 MERAH H3004YB PAMUJI JL GARUDA V/2,TEGAL,33567 HITAM,PUTIH H3005YA NINA JL DELIMA X/54,DEMAK,33452 BIRU,BIRU MUDA
  • 54. 37 Perhatikan isi data dari formulir isian rencana studi berikut: FORMULIR ISIAN RENCANA STUDI NAMA : AMIR NIM : 10 KODE MATA KULIAH DOSEN RUANG NILAI ----- ----------- ---------- ----- ----- MTK1 STATISTIK DRS JANUAR, MSI R101 B MTK2 BHS INGGRIS DRA ANDINI R102 A Kemudian data di atas, ditambah dengan data dari mahasiswa lain disimpan dalam bentuk relasi sebagai berikut: RENC_STUDI NIM NAMA KODEMTK MTK DOSEN RUANG NILAI 10 AMIR MTK1, STATISTIK, DRS JANUAR MSI, R101, B, MTK2 BHS INGGRIS DRA ANDINI R102 A 11 PUTRI MTK1, STATISTIK, DRS JANUAR MSI, R101, A, MTK4 FISIKA DRS HERY MSI R201 B 12 ANDI MTK2 BHS INGGRIS DRA ANDINI R102 A merupakan relasi dengan bentuk unnormalized, karena di dalamnya terdapat group atribut berulang. Bentuk Normal Ketiga (3NF) Suatu relasi di dalam 3NF jika dan hanya jika:  Memenuhi 2NF  Setiap atribut bukan kunci tergantung non-transitive pada kunci utama. FORMULIR ISIAN RENCANA STUDI NAMA : AMIR NIM : 10 KODE MATA KULIAH DOSEN RUANG NILAI ----- ----------- ---------- ----- --- -- MTK1 STATISTIK DRS JANUAR, MSI R101 B MTK2 BHS INGGRIS DRA ANDINI R102 A
  • 55. 38 Atribut bukan kunci merupakan sembarang atribut yang tidak berpartisipasi di dalam kunci utama dari relasi terkait. Sedangkan ketergantungan transitive terjadi apabila satu atribut bukan kunci tergantung pada satu atau lebih atribut bukan kunci yang lain. Kunci Utama A B Gambar 7.9 Ketergantungan Transitive Dari gambar di atas, B mempunyai ketergantungan fungsional pada Kunci Utama, dan juga pada A. Non-transitive memberikan implikasi tidak adanya saling ketergantungan. Contoh: Relasi di dalam Gambar 7.8 (yang masih mengandung ketergantungan transitive) akan diubah agar mempunyai bentuk normal yang lebih tinggi yaitu 3NF. Untuk itu maka relasi TBL_MTK dipecah menjadi dua, yaitu AMPU dan LOKASI, sehingga relasi yang dihasilkan ialah sebagai berikut.
  • 56. 39 MHS KRS NIM NAMA NIM KODEMTK NILAI 10 AMIR 10 MTK1 B 11 PUTRI 10 MTK2 A 12 ANDI 11 MTK1 A 11 MTK4 B 12 MTK2 A AMPU LOKASI KODEMTK MTK DOSEN DOSEN RUANG MTK1 STATISTIK DRS JANUAR MSI DRS JANUAR MSI R101 MTK2 BHS INGGRIS DRA ANDINI DRA ANDINI R102 MTK4 FISIKA DRS HERY MSI DRS HERY MSI R104 Gambar 7.10 Bentuk Normal Ketiga (3NF) Dari relasi yang dihasilkan terakhir di atas, maka:  Tidak ada ketergantungan transitive.  Setiap atribut bukan kunci bergantung penuh pada kunci utama. Sampai dengan tahapan terakhir ini (3NF), diperoleh struktur relasi yang bebas dari anomali. 7.4. Bentuk-bentuk Normal Relasi di dalam bentuk normal ketiga (3NF) sudah cukup untuk banyak perancangan basis data praktis. Akan tetapi 3NF tidak menjamin semua anomali telah dihilangkan (McFadden, 1988). Sehingga untuk menghilangkan anomali yang masih ada diperlukan penambahan proses normalisasi yang lebih tinggi. Pada prakteknya sangat sedikit orang perlu memikirkan penormalisasian di atas bentuk normal ketiga (Whitehorn, 2003). Bentuk-bentuk normal yang lebih tinggi dari 3NF antara lain ialah: a. Boyce-Codd Normal Form (BCNF) Jika suatu relasi mempunyai lebih dari satu kunci kandidat yang overlapping, terdapat kemungkinan masih dijumpainya anomali (meskipun relasi sudah memenuhi 3NF). R. F. Boyce dan E. F. Codd mengusulkan pemecahannya dengan mengenalkan suatu
  • 57. 40 bentuk normalisasi yang didefinisikan lebih kuat dari 3NF. Bentuk tersebut yang kemudian disebut dengan nama Boyce Codd Normal Form (BCNF). Suatu relasi di dalam BCNF jika dan hanya jika, hanya determinant yang menjadi kunci kandidat. b. Bentuk Normal Keempat Meskipun suatu relasi sudah memenuhi BCNF, terdapat kemungkinan relasi tersebut masih menghasilkan anomali peremajaan. Untuk menghilangkan anomali tersebut perlu dilakukan proses normalisasi untuk mendapatkan 4NF. Di dalam membentuk relasi menjadi 4NF, akan terkait dengan suatu bentuk hubungan antar atribut yang disebut dengan: Multi Valued Dependence (MVD). Ambil R suatu relasi, dan A, B, C merupakan bagian berubah-ubah dari R. B dikatakan multi dependent pada A, atau A  B jika dan hanya jika himpunan nilai B sesuai dengan pasangan (nilai A, nilai C) di dalam R, hanya bergantung pada nilai A dan bebas dari nilai C. Suatu relasi R di dalam 4NF jika dan hanya jika, kapan saja terdapat himpunan bagian A dan B dari atribut R sedemikian sehingga: MVD A  B memenuhi, maka semua atribut juga bergantung fungsional pada A. c. Bentuk Normal Kelima Sebelum bicara tentang relasi dengan bentuk normal yang lebih tinggi dari 4NF, perlu dikenalkan dahulu tentang Joint-Dependency (JD). Joint Dependency (JD): Ambil R suatu relasi, dan A, B, .., Z himpunan bagian berubah-ubah dari himpunan atribut R. R memenuhi joint dependence, jika: * (A, B, .., Z) jika dan hanya jika R sama dengan joint dari projection dari A, B, ..., Z.
  • 58. 41 Suatu relasi di dalam 5NF atau disebut dengan Projection-Joint Normal Form (PJ/NF) jika dan hanya jika setiap JD di dalam R dinyatakan tidak langsung oleh kandidat key dari R.
  • 59. 42 BAB 8 PERLINDUNGAN DAN PEMULIHAN DATA  Integritas dan Keamanan Integritas konstrain memberikan jaminan bahwa perubahan yang dilakukan terhadap basis data tidak menghasilkan hilangnya konsistensi data. Integritas konstrain juga untuk mencegah terjadinya suatu kerusakan basis data akibat adanya kejadian yang bersifat asidental.  Integritas Data Integritas data adalah jaminan konsistensi data terhadap semua status konstrain yang diberlakukan terhadap data tersebut, sehingga memberikan jaminan keabsahan data itu sendiri.  Keamanan Basis Data Keamanan basis data adalah pemberian perlindungan basis data terhadap ancaman dan gangguan, baik yang bersifat teknis maupun administrasi  Locking dan Deadlock Salah satu teknik untuk mengatasi masalah-masalah yang terjadi pada konkurensi dengan cara menggunakan teknik Locking. Locking adalah merupakan teknik untuk melakukan penguncian terhadap suatu transaksi lain dalam melakukan pengaksesan data yang sedang dipergunakan oleh transaksi current. Matrik Jenis Kompatibel Lock Transaksi B Transaksi A X-lock S-lock No Lock X-lock No No Yes S-lock No Yes Yes No Lock Yes Yes Yes Teknik Locking untuk penanganan konkurensi pada kehilangan update : Transaksi A Waktu Transaksi B T1 Begin transaksi A Begin transaksi A T2 Read(Balance) {membutuhkan S-lock pada Balance} Read(Balance) T3 Balance = Balance + 100 {membutuhkan S-lock pada Balance} Balance = Balance + 10 T4 Write(Balance)
  • 60. 43 {membutuhkan X-lock pada Balance} WAIT Write(Balance) T5 WAIT {membutuhkan X-lock pada Balance} WAIT WAIT Deadlock WAIT WAIT Deadlock WAIT  View Serializability Konsep view equivalent merupakan kepastian untuk konsep view serializability. Dikatakan bahwa schedule S adalah view serializability jika view equivalent untuk serial schedule. Schedule 6 adalah view serializable. Tentu saja view equivalent untuk serial schedule < 3T , 4T , 6T >, karena instruksi read(Q) membaca inisialisasi nilai Q antara kedua schedule, dan 6T menjalankan write Q terakhir antara kedua schedule. 3T 4T 6T Read(Q) write(Q) write(Q) write(Q)  Testing untuk Serializability Jika untuk precedences graph S memiliki cycle, maka schedule S tidak conflict serializable. Tetapi jika precedences graph S tidak memiliki cycle, maka schedule S conflict serializable. Contoh Diberikan schedule A sebagai berikut : 1T 2T 3T 4T 5T read(Y) read(Z) read(Y) read(Y) write(Y) read(V) read(W) write(W)
  • 61. 44 T2T1 T3 T4 T5 T2 5 T2 6 T2 8 T2 7 read(U) read(U) write(U) write(Z) read(Y) write(Y) read(Z) write(Z)  Sehingga dari schedule A diatas diperoleh precedence graph sebagai berikut :  Deadlock Detection and Recovery Deteksi deadlock dilakukan dengan cara sistem secara periodik mengawasi dan mendeteksi deadlock yang terjadi. Misalkan terdapat transaksi T25, T26, T27, T28 melakukan aktivitas transaksinya. T25 dalam status menanti penggunaan data yang dipegang transaksi T26 dan T27 T27 menanti transaksi T26. Jika T28 menanti Transaksi T27 maka terjadilah siklus penantian yang mengakibatkan terjadinya deadlock. Siklus tersebut adalah T26 – T28 – T27 – T26, yang dapat dilihat pada gambar 8.17 yang merupakan terjadinya deadlock.
  • 62. 45 DAFTAR PUSTAKA Pratama, A. 2013.Pengenalan Database http://ilmukomputer.org/wp-content/uploads/2013/02/PENGENALAN- DATABASE-ILMUKOMP.pdf (di unduh 1/12/2013) http://rogayah.staff.gunadarma.ac.id/Downloads/files/28963/konsep-sistem-basis- data_presentasi.pdf (di unduh 1/12/13) http://database.rizaarifudin.info/category/materi-1/ (dilihat 1/12/2013)