Anda di halaman 1dari 60

BAB I

PENGANTAR SISTEM BASIS DATA

A. Pengertian DataBase
Basis Data terdiri atas Basis dan Data.
Definisi Data
• Data adalah fakta mengenai objek, orang, dll.
• Data adalah representasi fakta dunia nyata yang mewakili suatu objek
seperti manusia, barang, hewan, peristiwa, konsep, keadaan dan yang
direkam dalam bentuk angka, huruf, symbol, teks, gambar, bunyi, atau
kombinasinya.
Data dinyatakan dengan nilai (angka, deretan karakter, atau sombol-sombol). Sampai
dengan membentuk suatu database, data mempunyai jenjang : karakter, field, record,
file, database.

Defisini Basis
• Basis berarti gudang, tempat berkumpul sedangkan

Sehingga bisa disimpulkan Basis Data (Database):


• Himpunan kelompok data(arsip) yang saling berhubungan yang diorganisasi
sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan
mudah.
• Kumpulan data yang saling berhubungan yang disimpan secara bersama
sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk
memenuhi berbagai kebutuhan
• Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam
media penyimpanan elektronis.
• Basis data (database) merupakan kumpulan dari data yang saling
berhubungan satu dengan yang lainnya. tersimpan di perangkat keras
komputer dan digunakan perangkat lunak untuk memanipulasinya.

Sebagai contoh:
Database : Universitas
Objects: Mahasiswa, Dosen, Mata Kuliah, …

Database merupakan salah satu komponen yang penting dalam sistem


informasi. Penerapan database dalam sistem informasi disebut dengan sistem basis
data (database system).
Kriteria Basis Data, yaitu :
• Bersifat data oriented dan bukan program oriented.
• Digunakan oleh beberapa program aplikasi tanpa perlu mengubah basis
datanya.
• Berkembang dengan mudah, baik volume maupun strukturnya.
• Memenuhi sistem-sistem baru secara mudah.
• Digunakan dengan cara-cara yang berbeda.
• Meminimalisasi kerangkapan data

Objektif basis data


Tujuan awal utama dalam pengelolaan data dalam sebuah basis data adalah
agar dapat memperoleh kembali data (yang dicari) dengan cepat dan tepat.
Disamping itu pemanfaatan basis data untuk pengolahan data, juga memiliki tujuan-
tujuan lain. Secara lengkap tujuan pemanfaatan basis data adalah sebagai berikut :
1. Kecepatan dan kemudahan (Speed)
2. Efisiensi Ruang Penyimpanan (Space)
3. Keakuratan (Accuracy)
4. Ketersediaan (Availability)
5. Kelengkapan (Completeness)
6. Keamanan (Security)
7. Kebersamaan Pemakaian (Sharability)

Pendekatan Dalam membuat Basis Data


• Pendekatan Tradisional
Memiliki kelemahan,
yaitu :
q Duplikasi data (data
redundancy) Mengakibatkan
• Modifikasi dari data yang duplikat harus dilakukan untuk
beberapa file sehingga kurang efisien
• Pemborosan tempat media penyimpanan
q Tidak terjadi hubungan data (data relatability)

• Pendekatan Database
Pendekatan database mencoba memperbaiki kelemahan-kelemahan yang
terjadi di pendekatan tradisional, yaitu :
q Duplikasi data (data redundancy) dikurangi.
q Hubungan data (data relatability) dapat ditingkatkan.

Jenjang Data
• Characters
• Field
• Record
• File
• Database
B. Operasi dasar basis data

Setiap basis data umumnya dibuat untuk mewakili sebuah semesta data yang spesifik.
Misalnya ada basis data akademik, kepegawaian, inventori dan lain-lain. Sementara dalam
basis data akademik kita dapat menempatkan file mahasiswa, matakuliah, dosen
kehadiran, nilai dan lain-lain.
Karena itu operasi-operasi dasar yang dapat kita lakukan berkenaan dengan basis data
dapat berupa :
1. Pembuatan basis data baru (create database)
2. Penghapusan basis data (drop database)
3. Pembuatan file/tabel baru ke suatu basis data (create table)
4. Penghapusan file/tabel dari suatu basis data (drop table)
5. Penambahan/pengisian data baru ke sebuah file/tabel (insert)
6. Pengambilan datda dari sebuah file/tabel (retrieve/search)
7. Pengubahan data dari sebuah file/tabel (update )
8. Penghapusan data dari sebuah file/tabel (delete)

Operasi pembuatan basis data dan tabel merupakan operasi awal yang hanya
dilakukan sekali dan berlaku untuk seterusnya. Sedangkan operasi-operasi yang
berkaitan dengan isi tabel (data) merupakan operasi rutin yang akan berlangsung ber-
ulang-ulang dan karena itu operasi-operasi inilah yang lebih tepat untuk aktivitas
pengolahan (management) dan pengolahan (processing) data dalam basis data.

C. Evolusi Teknologi Basis Data

Perkembangan teknologi basis data tidak terlepas dari perkembangan perangkat


keras dan perangkat lunak. Perkembangan teknologi jaringan komputer dan komunikasi
data merupakan salah satu penyumbang kemajuan penerapan basis data, yang kemudian
melahirkan sistem basis data terdistribusi. Contoh dampak perkembangan tersebut
adalah kemudahan untuk mengambil uang dengan fasilitas ATM (anjungan tunai mandiri).
Perkembangan perangkat lunak seperti kecerdasan buatan, sistem pakar, dan
pemrograman ber-orientasi objek, juga mempengaruhi perkembangan basis data,
sehingga muncul istilah basis data ber-orientasi objek dan basis data cerdas.

D. Penerapan basis data

Hampir semua aspek pemanfaatan perangkat komputer dalam sebuah organisasi


/perusahaan senantiasa berhubungan dengan basis data. Basis data merupakan salah satu
koponen utama dalam setiap sistem informasi. Tidak ada sistem informasi yang bisa
dibuat/dijalankan tanpa adanya basis data.
Bidang-bidang fungsional yang telah umum memanfaatkan basis data demi efisiensi,
akurasi dan kecepatan operasi antra lain : Kepegawaian, Pergudangan (inventory),
Akuntasnsi, Reservasi (untuk hotel, pesawat, kereta api), Layanan pelanggan, dll.
Bentuk-bentuk organisasi/perusahaan yang memanfaatkan basis data (sebagai komponen
sistem informasi dalam organisasi/perusahaan dapat berupa : Perbankan, Asuransi,
Rumah sakit, Produsen barang, Industri manufaktur, Pendidikan/sekolah, Telekomunikasi,
dll.

E. Kelebihan Basis Data

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN 4
Pendekatan basis data memberikan banyak keuntungan (kelebihan), antara lain:
1. Pengendalian terhadap kerangkapan data
Dilakukan dengan cara data hanya disimpan sekali. Hal ini mengurangi kerangkapan data
dan megurangi biaya untuk tempat penyimpnan.
2. Konsistensi Data
Dilakukan dengan cara data disimpan hanya sekali dalam basis data sehingga jika terjadi
perubahan pada nilai data tersebut, perubahan hanya dilakukan satu kali dan nilai baru
tersebut akan tersedia untuk semua pengguna.
3. Dapat memperoleh lebih banyak informasi dari data yang sama. Pengguna basis data
dapat memeperoleh informasi selain dari informasi rutin yang dikelolanya karena semua
data lain berada dalam basis data yang sama. Dengan demikian kebutuhan akan informasi
selain dari informasi rutin dapat terpenuhi.
4. Data dapat dipakai secara bersama (shared)
Data yang ada pada basis data menjadi milik seluruh organisasi dan dapat dipakai secara
bersama oleh pengguna yang berwenang pada saat bersamaan.
5. Memperbaiki integritas data
Intergritas data mengacu pada validitas dan konsistensi dari data yang disimpan. Integritas
biasanya diekspresikan dalam batasan (constraints) yang merupakan aturan yang
konsisten dan tidak dapat dilanggar.Jika kerangkapan data dikontrol dan kekonsistenan
data dapat dijaga maka data menjadi akurat
6. Meningkatkan keamanan data
Keamanan basis data melindungi basis data dari pengguna yang tidak memiliki otorisasi.
DBA dapat menentukan batasan-batasan pengaksesan data, misalnya dengan
memberikan password dan pemberian hak akses bagi pemakai (misal : modify, delete,
insert, retrieve).
7. Economy of scale
Dengan menggabungkan semua data operasional organisasi ke dalam satu basis data
dengan aplikasi yang dibutuhkan dapat menghasilkan penghematan biaya. Anggaran yang
biasanya dialokasikan ke setiap departemen untuk pengembangan dan pemeliharaan dari
sistem file mereka dapat digabung sehingga menurunkan total biaya dan menciptakan
economy of scale.
8. Meningkatkan aksesibilitas terhadap data dan respon yang lebih baik
Akibat dari integrasi data yang melewati batasan-batasan departemen dapat langsung
diakses oleh pengguna. Ini berarti menyediakan sistem dengan fungsi yang lebih baik.
Pengguna dapat memperoleh data yang dibutuhkan dengan cepat dengan menggunakan

F. Kelemahan Basis Data


Selain keuntungan, basis data juga memiliki beberapa kelemahan, antara lain :

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN 5
1. Rumit
Harapan akan fungsi yang baik dari sebuah basis data yang baik membuat basis data
menjadi software yang rumit. Perancang, pengembang, DBA, basis data administrator, dan
pengguna akhir harus memahami fungsi basis data agar dapat mengambil manfaat dari
basis data. Kegagalan dalam memaminya akan menyebabkan keputusan yang buruk bagi
organisasi dan membahayakan organisasi.
2. Biaya basis data
Biayanya sangat mahal karena menyangkut biaya-biaya untuk hardware and software.
3. Terdapat tambahan biaya hardware
Harus menggunakan biaya tambahan untuk hardware, storage, and network.
4. Terdapat biaya konversi
Diperlukan biaya yang besar untuk berpindah dari aplikasi/sistem yang lama ke dalam
sistem dan hardware basis data yang baru. Diperlukan pulan biaya untuk pelatihan staf
untuk menggunakan sistem yang baru ini serta tambahan biaya untuk mempekerjakan staff
khusus seperti DBA, dan lain-lain.

G. ISTILAH ISTILAH DALAM BASIS DATA


1. Entitas, suatu obyek yang dapat dibedakan dengan obyek lainnya yang dapat diwujudkan
dalam database
Contoh
Entitas dilingkungan universitas → mahasiswa, dosen,matakuliah
Entitas dilingkungan instansi pemerintah → karyawan,departement

2. Atribute/Field, merupakan karakteristik entitas tertentu.


Contoh :
Entitas Mahasiswa → atributenya adalah NIM, Nama_Mahasiswa,Alamat dll.
Entitas Bank → atributenya adalah No_Rekening,Nama_Nasabah.
3. Data Value, merupakan data actual atau informasi yang disimpan ditiap data elemen atau
atribute. Isi dari atribute disebut nilai data (data value).
Contoh :
Atribute Nama_Mahasiswa → budi, ani, wanda, sari
Atribue Alamat_Mahasiswa → semarang, yogyakarta, bandung, surabaya
4. Record/Tuple, merupakan kumpulan isi elemen data yang saling berhubungan
menginformasikan tentang suatu entity secara lengkap.
5. File, merupakan kumpulan record sejenis yang mempunyai panjang elemen dan atribute
yang sama.
6. Kunci Elemen Data, merupakan tanda pengenal yang secara unik mengidentifikasikan
entitas dari suatu kumpulan entitas.
7. Database Management System (DBMS), merupakan kumpulan file yang saling berkaitan
bersama dengan program untuk pengelolanya atau merupakan kumpulan software yang
mengkoordinasikan semua kegiatan yang berhubungan dengan database agar dapat
diakses/dipakai oleh user.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN 6
BAB II
KOMPONEN SISTEM BASIS DATA

A. Komponen sistem basis data terdiri dari:


1. User (pengguna)
Pengguna sistem basis data
2. Aplikasi Basis Data
Program komputer yang digunakan oleh user untuk bekerja.
3. DBMS
Sistem manajemen basis data yang membuat, memproses, dan
mengatur basis basis datas.
4. Basis data

B. Komponen Sistem Basis Data dengan SQL

1. User (pengguna)
Pengguna sistem basis data
2. Aplikasi basis data
Program komputer yang digunakan oleh user untuk bekerja.
3. Structured Query Language (SQL)
Bahasa standar (secara internasional) yang dapat digunakan untuk melakukan
query terhadap data pada semua sistem basis data
4. DBMS
Sistem manajemen basis data yang membuat, memproses, dan mengatur basis
data. basis datas.
5. Basis data

C. Komponen Sistem Basis Data kelas Perusahaan


(Enterprise-class Database System)

Komponen dari Enterprise-class Database System terdiri dari:


1. User (pengguna)
1. Pengguna sistem basis data. Pemakai
Beberapa jenis pemakai suatu sistem basis data yang dibedakan berdasarkan cara
mereka berinteraksi terhadap sistem :
- Programmer Aplikasi. Pemakai yang ber-interaksi dengan basis data melalui Data
Manipulation Language (DML) yang disertakan dalam program yang ditulis dalam
bahasa pemrograman induk (seperti C, Pascal, Cobol dll)
- User Mahir. Pemakai yang ber-interaksi dengan sistem tanpa menulis modul
program, melaikan hanya menggunakan bahasa query yang disediakan DBMS.
- User Umum. Pemakai yang ber-interaksi dengan sistem melalui program aplikasi
permanen.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN 7
- User Khusus. Pemakai yang menulis aplikasi basis data non konvensional, tetapi
untuk keperluan khusus, seperti sistem pakar, pengolahan citra, dll yang bisa saja
mengakses dengan/tanpa DBMS.

Pengguna Database
1. Database Manager
Satu database manager adala satu modul program yang menyediakan interface
antara penyimpanan data low-level dalam database dengan satu aplikasi program dan
query yang diajukan ke sistem
Tugas dan tanggung jawab Database Manager :
• Interaksi dengan manager File
• Intergrity enforcement (Integritas)
• Security Enforcement (keamanan)
• Backup dan recovery
• Concurency Control

2. Database Administrator
Merupakan orang yang mempunyai kekuasaan sebagai pusat pengontrolan terhadap
seluruh sistem baik data maupun program yang mengakses data.
Fungsi database administrator, yaitu :
• Mendefinisikan pola struktur database
• Mendefinisikan struktur penyimpanan dan metode akses
• Mampu memodifikasi pola dan organisasi phisik
• Memberikan kekuasaan pada user untuk mengakses data
• Menspesifikasikan keharusan/paksaan integritas data

3. Database User
Satu tujuan utama dari sistem database adalah menciptakan suasana bagaimana
informasi dibaca dan data baru disimpan dalam database.
Ada 4 macam pemakai database yang berbeda keperluan dan cara aksesnya, yaitu :
§ Programmer Aplikasi
§ User Mahir (Casual User)
§ User Umum (End User/Naïve User)
§ User Khusus (Specialized User)

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN 8
Hubungan antara user dapat dilihat pada gambar berikut :

Gambar Struktur sistem basis data secara keseluruhan (Hub Antara User)

2. Database Application
– Client/Server application
ü Program aplikasi diinstal di client dan terkoneksi dengan database server
ü Dikembangkan dengan Visual Basic, C++, atau Java
– E-commerce
ü Program berjalan pada web server
ü User menggunakannya melalui Web browser (Internet Explorer atau
Firefox)
ü Web server yang sering digunakan: IIS atau Apache
ü Dikembangkan dengan PHP, Java, Microsoft .Net
– Reporting Application
ü Mempublikasikan hasil dari query pada basis data melalui
portal atau web site suatu organisasi atau perusahaan

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN 9
ü Dibuat menggunakan third-party report generator dan
digital dashboard product seperti Cognos dan
MicroStrategy
– XML Web Services
ü Memanfaatkan teknologi XML sehingga memungkinkan
komunikasi antar program aplikasi yang berbeda
ü Dikembangkan dengan Java atau Microsoft .Net (C## atau VB .Net)

3. Structured Query Language (SQL)


Bahasa standar (secara internasional) yang dapat digunakan untuk melakukan query
terhadap data pada semua sistem basis data

4. DBMS
• Memproses perintah SQL
• Menyediakan fasilitas untuk membuat, memproses dan mengelola basis data
• Contoh: Microsoft Access, Microsoft SQL Server, Oracle dan DB2
Database application mengambil dan menyimpan data dari basis data
dengan mengirim perintah SQL ke DMBS
Fungsi DBMS
Fungsi dan pelayanan yang disediakan oleh Database Manajemen System, yaitu :
§ Data Storage, Retrieval dan Update
Suatu DBMS harus mentediakan user dengan kemampuan untuk menyimpan,
mengambil dan update data dalam database
§ A User – Accessible Catalog
Suatu DBMS harus menyediakan suatu catalog dimana deskripsi item data yang
disimpan dapat diperoleh user
§ Transaction Support
Suatu DBMS harus menyediakan suatu mekanisme yang akan menjamin semua
update yang menghubungkan ke transsaksi yang diberikan.
§ Concurrency Control Services
Suatu DBMS harus menyediakan mekanisme untuk menjamin bahwa database yang
di update dengan benar oleh beberapa user secara bersamaan
§ Recovery Service
Suatu DBMS mesti menyediakan suatu mekanisme untuk mendapatkan kembali
database dalam suatu kejadian, dimana database dirusak dalam beberapa cara.
• Authorisation Services
Suatu DBMS harus menyediakan suatu mekanisme untuk menjamin bahwa hanya
user yang berhak dapat mengakses database
• Support Data Communication
Suatu DBMS harus mampu mendukung dalam penintegrasian software
comunication

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN 10
• Integrity Services
Suatu DBMS harus menyediakan suatu maksud tertentu untuk menjamin data dalam
database dan bertukarnya suatu data mengikuti aturan tertentu
• Services to promote data independence
Suatu DBMS erdiri dari fasilitas untuk mendukung independence program dari struktur
database yang aktual
• Utitlity services
Suatu DBMS harus menyediakan satu set pelayanan utiliti

PEDOMAN UNTUK MEMILIH DBMS


1. Harus mudah digunakan
2. Mempunyai prosedur backup untuk membuat file pelindung
3. Dapat memberikan berita bila terjadi kegagalan sistem
4. Banyaknya file yang dapat dibuka serentak pada suatu saat
5. Kemampuan untuk merubah nilai default yang sudah ditentukan
6. Kemampuan dari operasi arithmatika.
7. Kemampuan untuk mengedit data dengan mudah
8. Kemampuan untuk mengurutkan data
9. Kecepatan pengolahannya
10. Kemampuan pembuatan laporan
11. Kemampuan memodifikasi struktur data
12. Kemampuan mempertemukan, menggabung atau pengupdate dengan dua
atau lebih file
13. Kemampuan Indexing
14. Mempunyai Query Language
15. Kemampuan berhubungan dengan program yang lain
16. Jumlah record yang dapat ditangani oleh masing-masing file
17. Jumlah karakter per record yang dapat digunakan
18. Jumlah dari field yang dapat ditentukan dalam sebuah file
19. Panjang maksimum suatu field
20. Jumlah field kunci dalam satu file
21. Kemampuan hubungan dengan dengan file yang lain
22. Kemampuan menggunakan Harddisk
23. Kemampuan untuk digunakan pada sistem multi user
24. Harga dari paket tersebut.
25. Dukungan purna jual bila ada versi yang lebih baru.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN 11
5. Basis data
merupakan koleksi dari tabel-tabel yang terintegrasi. Basis data hanyalah sebuah objek
yang pasif/mati, ia ada karena ada pembuatnya. Basis data tidak akan pernah berguna
jika tidak ada pengelola/penggeraknya. Yang menjadi pengelola/penggeraknya secara
langasung adalah program/aplikasi (software). Gabungan dari basis data dan
pengelolanya menghasilkan sesbuah sistem basis data. Karena itu, secara umum
sebuah sistem basis data merupakan sistem yanga terdiri dari kumpulan file (tabel) yang
saling berhubungan (dalam sebuah basis data) dan sekumpulan program (DBMS) yang
memungkingkan beberapa pemakai dan/atau program lain untuk mengakses dan
memanipulasinya.

Sistem manajemen basis data (Database Management System) adalah merupakan


suatu perangkat lunak yang didesain untuk membantu pemakai dalam mendefinisikan,
menciptakan database, melakukan pemeliharaan, dan mengontrol penggunaan
terhadap database.

Sistem Basis Data


Sistem basis data (database system) adalah suatu informasi yang mengintegrasikan
kumpulan dari data yang saling berhubungan satu dengan lainnya dan membuatnya
tersedia untuk beberapa aplikasi didalam suatu organisasi.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
BAB III
ARSITEKTUR DATABASE

Abtraksi Data
Kegunaan utama sistem database adalah agar pemakai/user meampu
menyusun suatu pandangan abtraksi dari data. Bayangan mengenai data tidak lagi
memperhatikan kondisi sesungguhnya bagaimana satu data masuk ke database,
disimpan dalam disk disektor mana, tetapi menyangkut secara menyeluruh
bagaimana data tersebut dapat di abtraksikan/digambarkan menyerupai kondisi yang
dihadapi oleh pamakai.
Abstraksi data adalah bagaimana melihat data dalam sebuah sistem basis
data. Salah satu tujuan dari DBMS adalah untuk menyediakan fasilitas dalam
memperlihatkan data kepada pemakai/user. Untuk itu sistem akan menyembunyikan
detail tentang bagaimana data itu disimpan dan dipelihara. Karena itu seringkali data
yang terlihat oleh pemakai berbeda dengan yang tersimpan secara fisik.

Arsitektur Database menurut ANSI-SPARC

Level Eksternal / View Level


v Pandangan user terhadap database
v Menggambarkan bagian dari database yang relevan untuk pemakai tertentu

Level Konseptual / Logical Level


v Merupakan pandangan komunitas terhadap database
v Menggambarkan data apa yang disimpan dalam database dan bagaimana
hubungan diantara data.
v Level ini juga berisi struktur logic dari keseluruhan database.

Level Internal / Physical Level


v Merupakan gambaran phisik database pada computer
v Menggambarkan bagaimana data tersimpan ke dalam database

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Data Independence
Tujuan utama dari arsitektur DBMS adalah untuk menyediakan data independence.
Dimana bahwa level yang lebih tinggi tidak dipengaruhi oleh pertukaran ke level yang
lebih rendah.

• Logical Data Independence


Menunjukkan kekebalan skema external untuk bertukar ke skema konseptual.
Bertukarnya ke skema konseptual seperti penambahan atau penghapusan entity,
atribut dan relation baru tanpa harus menukar skema external yang ada atau harus
ditulisnya kembali program aplikasi

• Physical Data Independence


Menunjukkan kekebalan skema konseptual untuk bertukarnya skema internal. Ex.
Penggunaan organisasi file atau struktur penyimpanan yang berbeda penggunaan
peralatan penyimpanan yang berbeda, pemodifikasian algoritma indek atau hashing
tanpa harus menukar skeme konseptual (eksternal)

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Pemakai A1 Pemakai A2 Pemakai B1 Pemakai B2

Bahasa Bahasa Bahasa Bahasa


Pemrograman Pemrograman Pemrograman Pemrograman

Pandangan Pandangan

Pola dan Pandangan


Pemetaan Konseptual
oleh DBA
Database
Administrator Pemetaan secara

Bahasa Basis Data (Database Language)


DBMS merupakan perantara bagi pemakai dengan basis data dalam disk,
Cara berinteraksi/berkomunikasi tersebut menggunakan suatu bahasa khusus yang
disebut bahasa basis data yang terdiri dari sejumlah perintah/statement.
Bahasa basis data dapat dipilah menjadi dua macam perintah yang digunakan untuk
mengelola dan mengorganisasikan data, yaitu :
1. Data Definition Language (DDL)
Memberikan kemudahan kepada DBA atau USER untuk mendeskripsikan entitas,
attribut dan relasi, yang dibutuhkan untuk aplikasi database. Hasil dari perintah DDL
adalah kumpulan table yang disimpan dalam file khusus yang disebut Kamus
Data(Data Dictionary)

2. Data Manipulation Language (DML)


Berguna untuk melakukan manipulasi dan pengambilan data, yaitu berupa
• Penyisipan /penambahan data baru ke suatu basis data
• Penghapusan data dari suatu basis data
• Pengubahan data disuatu basis
data Ada dua jenis DML
• Prosedural
• Nonprosedural

Ada dua cara untuk mengakses data pada basis data :


a. Mengetikkan perintah-perintah yang ditujukan kepada DBMS untuk
memanipulasi suatu data. Biasanya DML yang digunakan adalah bersifat
nonprosudural.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
b. Melalui program aplikasi yang menerbitkan instrruksi-instruksi internal ke
DBMS untuk memanipulasi data dan memberikan hasil ke program. Bahasa
pemrograman yang digunakan dapat berupa bahasa pemrograman
konvensional Pascal, C, Cobol, Fortran dll, yang menggunakan pendekatan
prosedural.

Arsitektur Database Multiuser


1. TELEPROCESSING
• Traditional architecture.
• Single mainframe with a number of
terminals attached.
• Trend is now towards downsizing.

2. FILE-SERVER
• File-server is connected to
several workstations across a network.
• Database resides on file-server.
• DBMS and applications run on each
workstation.

Kelemahan File-Server
• Significant network traffic.
• Setiap workstation harus memiliki copy DBMS
• Concurrency, recovery and integrity control more complex.

3. CLIENT-SERVER
• Database dan DBMS terletak pada Server
• Client mengatur sendiri hubungan dengan database, DBMS dan
menjalankannya

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Transaction Processing Monitors
• Merupakan program yang mengontrol pertransferan data antaea Clients dan
Servers saat terjadinya transaksi dan merupakan bagian dari OLTP (Online
Transaction Processing)
• Transaction Processing Monitor merupakan middle tier dari arsitektur three-
tier client- server

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
BAB IV
MODEL DATA

Model basis data menunjukkan suatu cara/mekanisme yang digunakan untuk


megelola/mengorganisasikan data secara fisik dalam memori sekunder yang akan
berdampak pada bagaimana kita mengelompokkan dan membentuk keseluruhan
data yang terkait dalam sistem yang sedang kita tinjau. Suatu model adalah suatu
representasi terhadap objek yang ada “real world” dan kejadian serta hubungan
diantara mereka.
Hingga saat ini, model basis data yang paling umum ada 3 macam, yaitu : hirarkis,
jaringan dan relational.

Model hirarkis
Model hirarkis biasa disebut model pohon, karena menyerupai pohon yang
dibalik. Model ini menggunakan pola hubungan orang tua-anak. Setiap simpul
(biasanya dinyatakan dengan lingkaran atau kotak) menyatakan sekumpulan medan.
Simpul yang terhubung ke simpul pada level dibawahnya disebut orang tua
sebaliknya simpul yang berada dibawah orang tua disebut anak. Setiap orang tua
dapat memiliki satu (hubungan 1:1) atau beberapa anak (hubungan 1:M), tetapi setiap
anak hanya memiliki satu orang tua. Contoh gambar yang menunjukkan model
hirarkis :

Dosen Dosen
Siti Nurbaya Asrab

Sistem Pendidikan
Basis Data Pascal Agama

Rudi Asti Dina Dina Edi Ita Edi

Model Jaringan
Model ini menyerupai model hirarkis, dengan perbedaan suatu simpul anak
dapat memiliki lebih dari satu orang tua. Oleh karena sifatnya yang demikian model
ini bisa menyatakan hubungan 1:1 (satu orang tua mempunyai satu anak), atau 1:M
(satu orang tua mempunyai banyak anak), maupun N:M (beberapa anak bisa
mempunyai beberapa orang tua). Contoh gambar yang menunjukkan model jaringan
:

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Dosen Dosen
Siti Nurbaya Asrab

Sistem Pendidikan
Basis Data Pascal Agama

Rudi Asti Dina Edi Ita

Model Relasional
Didasarkan pada konsep relasi matematik (mathematical relation). Di dalam
relasional data model, data dan relationship di gambarkan seperti tabel yang masing-
masingnya mempunyai sejumlah kolom dengan nama yang unik.
Mahasiswa dan dosen wali

NPM Nama Alamat Dosen Wali


04401001 Nur’Ainun Jln. Thamrin No 123 c SMJ
04401010T Okta Frida Jln. Prof. HM Yamin 12 GND
04402011 Elga Puspita Helvetia SMJ
04301001 Aldyan Setia Budi YHD

Kode Nama Alamat


SMJ Ir. Sumijan, M.Sc Jln. Aru Gg Bunga 12
GDN Dr. Ir. Gunadi, M.Sc Jln. Sudirman 100 D
YHD Yuhandri, S.Kom Pasar Timur

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Karakteristik model data relational adalah :
a. Semua elemen data pada suatu baris dan kolom tertentu harus mempunyai
nilai tunggal
b. Semua elemen data pada suatu kolom tertentu dalam relasi yang sama harus
mempunyai jenis yang sama
c. Masing-masing kolom dalam suatu relasi mempunyai suatu nama(atribut) yang
unik
d. Pada suatu relasi atau table yang sama tidak ada dua baris yang identik

Keuntungan menggunakan model relational


a. Bentuknya sederhana untuk memudahkan pengembangan sistem yang ada
b. Mudah melakukan berbagai operasi data, misalnya insert, delete, update
c. Implementasinya mudah
d. Dapat mengoptimasi biaya
e. Keamanan atau security lebih mudah dilakukan

Ada beberapa sifat yang melekat pada suatu tabel, yaitu :


1.Tidak ada baris yang kembar
2.Urutan baris bebas
3.Setiap kolom memiliki nama yang unik
4.Letak kolom bebas
5.Setiap kolom memiliki nilai tunggal dan jenisnya sama untuk semua baris

DATABASE TERDISTRIBUSI
Sebuah sistem database terdistribusi berisikan sekumpulan site. Setiap site
dapat berpartisipasi saat mengeksekusi transaksi yang mengakses data di satu site
atau beberapa site.
Bentuk-bentuk topologi distribusi
data
o Fully Connected Network Keuntungan
- Kalau salah satu node rusak
yang lainnya masih dapat
berjalan
Kerugian
- Control manajemen
tidak terjamin

o Partially Connected Network Keuntungan


- Reliability rendah
- Biaya dapat
ditekan Kerugian
- Control manajemen
tidak terjamin

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
o Tree Structured Network
Keuntungan
- Bersifat sentral
- Control manajemen terjamin
Kerugian
- Kalau node pusat rusak semua
akan rusak

Keuntungan
- Apabila ada satu yang rusak,
yang lain masih bisa berjalan
Kerugian
- Control manajemen kurang
terjamin karena bersifat
desentralisasi

o Star Network
Keuntungan
- Control manajemen lebih terjamin,
karena bersifat sentral dan reliability
rendah
Kerugian
- Kalau node pusat rusak semua akan
rusak

Keuntungan Database terdistribusi


o Pengawasan distribusi dan pengambilan data
Jika sejumlah site yang berbeda dihubungkan satu sama lain, sehingga
seorang pemakai yang berada pada satu site dapat mengakses data yang
tersedia pada site yang lain.
o Reliability dan Avaibility
Sistem distribusi dapat terus-menerus berfungsi dalam menghadapi
kegagalan site individu atau mata rantai komunikasi antar site.
o Kecepatan pemrosesan query
Jika kecepatan suatu query melibatkan data dibeberapa site, maka
memungkinkan membagi query kedalam subquery yang dapat dieksekusi
dalam bentuk parallel oleh beberapa site.
o Otonomi local
Pendistribusian sistem mengizinkan sekelompok indivisu dalam sebuah
perusahaan untuk melatih pengawasan local melalui data mereka sendiri.
Kemampuan ini dapat mengurangi ketergantungan kepada pemrosesan
pusat
o Efisiensi fleksibel
Data dapat disimpan dekan dengan titik yang datanya digunakan. Data
dapat secara dinamik bergerak atau disalin, atau salinannya dapat dihapus.
Kerugian Database terdistribusi
o Harga Software mahal
o Kemungkinan kesalahan besar
o Biaya pemrosesan tinggi

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
BAB V
TEKNIK NORMALISASI DATA
Anomali
Adalah proses pada basis data yang memberikan efek samping yang tidak
diharapkan (misalnya menyebabkan ketidakkonsistenan data atau membuat sesuatu
data menjadi hilang ketika data lain dihapus).

Macam anomali ada 3, yaitu :


1. Anomali peremajaan,
2. Anomali penghapusan, dan
3. Anomali penyisipan.

1. Anomali Peremajaan
Anomali ini terjadi bila terjadi perubahan pada sejumlah data yang mubazir,
tetapi tidak seluruhnya diubah. Sebagai contoh, terdapat relasi
PESANAN_BELI yang mengandung data PEMASOK dan KOTA yang
menyatakan lokasi pemasok. BARANG, dan JUMLAH yang menyatakan nama
barang dan jumlah barang yang dipesan.

PEMASOK KOTA BARANG JUMLAH


Kartika Jakarta Monitor GGG 10
Citra Bandung ZIP-drive 4
Candra Jakarta Keyboard 5
Citra Bandung Mouse CCP 25
Gambar Relasi PESANAN_BELI

Seandainya pemasok Citra berpindah ke kota lain, misalnya ke Bogor, dan


pengubahannya hanya dilakukan pada data pertama ( data pemasok Citra pada
relasi PESANAN_BELI ada dua buah), maka hasilnya adalah seperti yang
terlihat pada gambar dibawah ini:

PEMASOK KOTA BARANG JUMLAH


Kartika Jakarta Monitor GGG 10
Citra Bandung ZIP-drive 4
Candra Jakarta Keyboard 5
Citra Bandung Mouse CCP 25
Gambar Relasi PESANAN_BELI setelah adanya perubahan

Terlihat bahwa ada ketidakkonsistenan. Fakta pertama menyatakan bahwa


pemasok Citra berlokasi di Bogor, tetapi fakta kedua menyatakan bahwa
pemasok Citra berada di Bandung. Mana yang benar? Keadaan inilah yang
menyatakan adanya ketidakkonsistenan.

2. Anomali penyisipan
Anomaly ini terjadi jika pada saat penambahan hendak dilakukan, ternyata ada
elemen data yang masih kosong dan elemen data tersebut justru menjadi kunci.
Sebagai contoh, terdapat relasi yang berisi tiga buah atribut:
- KULIAH
- RUANG
- TEMPAT

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
KULIAH RUANG TEMPAT
Jaringan Komputer Merapi Gedung Utara
Pengantar Basis Data Merbabu Gedung Utara
Matematika I Rama Gedung Selatan
Sistem Pakar Sinta Gedung Selatan
Kecerdasan Merapi Gedung Utara
Contoh relasi yang menimbulkan anomali penyisipan

Relasi di atas menyatakan bahwa:


• KULIAH menggunakan RUANG tertentu (misalnya Jaringan
Komputer menggunakan ruang Merapi), dan
• Suatu RUANG berada pada TEMPAT tertentu (misalnya ruang Merapi
terdapat pada Gedung Utara).

Masalahnya, bagaimana caranya menyimpan fakta bahwa ruang baru bernama


Arjuna terdapat pada Gedung Selatan? Penyisipan tidak dapat dilakukan
mengingat tak ada informasi KULIAH yang menggunakan ruang tersebut.
Kasus serupa dapat dilihat pada relasi berikut:
NO_SISWA NAMA_KURSUS BIAYA
10 Bahasa Inggris 60.000
10 Bahasa Prancis 80.000
10 Bahasa Mandarin 60.000
15 Bahasa Inggris 60.000
20 Bahasa Jepang 65.000
Contoh korelasi yang menimbulkan anomaly penyisipan

Relasi di atas mencatat kursus-kursus yang diikuti oleh siswa (misalnya, siswa
dengan nomor identifikasi 10 mengambil kursus bahasa Inggris, Prancis, dan
Mandarin) selain juga menyatakan biaya kursus (misalanya biaya kursus
Bahasa Inggris adalah sebesar 60.000). masalh akan timbul apabila dibuka
kursus baru , misalnya Bahasa Arab, dengan biaya sebesar 70.000, akan
tetapi untuk sementara belum seorang pun yang mengambil kursus ini.
Akibatnya, data kursus baru itu tidak dapat dicatat!

3. Anomali Penghapusan
Anomaly penghapusan terjadi sekiranya sesuatu baris (tupel) yang tak
terpakai dihapus dan sebagai akibatnya terdapat data lain yan ghilang.
Dengan mengambil contoh relasi KURSUS di depan, apa yang terjadi
seandainya data bahwa siswa dengn identitas 20 yang mengambil kursus
bahasa Jepang di hapus? Data yang menyatakan bahwa biaya kursus bahasa
jepang sebesar 65.000 juga akan terhapus!

Pengertian Normalisasi
Istilah normalisasi berasal dari E.F. Codd, salah seorang perintis teknologi
basis data. Normalisasi memberikan panduan yang sangat membantu bagi
pengembang untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau
mengurangi ketidak efisienan.

Normalisasi adalah proses untuk mengubah suatu tabel yang memiliki


masalah tertentu ke dalam dua buah atau lebih tabel yang tidak memiliki masalah
tersebut. Masalah yang dimaksud disebut dengan istilah anomali.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Bentuk-bentuk Normal
Bentuk normalisasi adalah suatu aturan yang harus dipenuhi oleh tabel-tabel
pada level normalisasi dalam basis data. Suatu tabel dikatakan berada dalam bentuk
normal tertentu jika telah memenuhi kondisi-kondisi tertentu. Beberapa level yang
biasa digunakan pada normalisasi adalah :
1. Bentuk normal pertama (1NF)
2. Bentuk normal kedua (2 NF)
3. Bentuk normal ketiga (3 NF)
4. Bentuk normal Boyce-Codd (BCNF)
5. Bentuk normal keempat (4 NF)
6. Bentuk normal kelima (5 NF)

Bentuk normal pertama hingga ketiga merupakan bentuk normal yang umum dipakai.
Artinya pada kebanyakan tabel, bila ketiga bentuk normal tersebut telah dipenuhi,
maka pesoalan anomali tidak akan muncul lagi. Bentuk normal Boyce_Codd
merupakan revisi terhadap bentuk normal ketiga. Bentuk normal 4 NF

5 NF

4 NF

BCNF

3 NF

2 NF

1 NF

Tabel Umum
dan 5 NF hanya dipakai pada kasus-kasus khusus, yaitu tabel yang
mengandung dependensi nilai banyak.

Gambar diatas menjelaskan bahwa setiap level normalisasi bergantung pada


level sebelumnya. Semakin dalam levelnya, tabel mempunyai kecenderungan
lebih baik, artinya memiliki problem yang lebih kecil ataupun sama sekali tidak
memiliki permasalahan anomali.

Pada normalisasi proses perancangan database berasal dari dokumen


dasar yang dipakai pada system informasi. Selanjutnya dokumen dasar
tersebut dibentuk menjadi UNF, 1 NF, 2 NF dan 3 NF.

Contoh 1:

Dari dokumen berikut ini tentukan UNF, 1 NF, 2 NF dan 3 NF-nya untuk perancangan
database dengan Normalisasi.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
KARTU ANGGOTA PERPUSTAKAAN
No. Anggota : P001
Nama : ALI
Alamat : Jl. O. No. 1
Tgl. Masuk : 27-7-97
Kode Buku Judul Tgl.Pinjam Tgl. Kembali
B001 BASIC 28-07-97 04-08-97
B002 PASCAL 28-07-97 04-08-97
B003 DEA 28-07-97 04-08-97

Bentuk UNF dan 1 NF


Bentuk normal pertama biasanya dikenakan pada tabel yang belum
ternormalisasi. Tabel yang belum ternormalisasi adalah tabel yang memiliki
atribut yang berulang.
No. Tgl.
Nama Alamat Tgl. Msk Kd_Buku Judul Tgl. Pinj
Angg Kem
P001 ALI Jl. O No.1 27-7-97 B001 BASIC 28-7-97 4-8-97
P001 ALI Jl. O No.1 27-7-97 B002 PASCAL 28-7-97 4-8-97
P001 ALI Jl. O No.1 27-7-97 B003 DEA 28-7-97 4-8-97
Kelemahan :
- Terjadi duplikasi karena No. Anggota dan Tgl. Masuk berkali-kali.
- Inserting tidak dapat dilakukan tanpa adanya transaksi peminjaman.
- Updating untuk field yang terduplikasi akan berkali-kali.
- Deleting akan mengalami kekacauan, karena bila kita menghapus No.
angggota P001 akan menghapus juga kode buku yang masih diperlukan.

Catatan !
Untuk bentuk UNF No. Anggota, Nama, Alamat, dan Tgl. Masuk hanya ditulis satu
kali.

Bentuk 2 NF
Bentuk normal kedua didefinisikan berdasarkan dependensi fungsional.

Definisi bentuk normal kedua adalah :


- Berada pada bentuk normal pertama
- Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap
kunci perimer.

Dalam ungkapan yang lebih praktis, bentuk normal kedua mensyaratkan setiap
atribut bergantung kepada kunci primer.

Bentuk normal kedua didapat dengan mencari field kunci (primary key) dan
membentuk table berdasarkan primary key tersebut.

Dari kasus diatas didapat:


- No. Anggota
- Kode Buku

Anggota Buku
* No. Anggota *Kode Buku
Nama Judul

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Alamat Tgl. Pinjam
Tgl. Masuk Tgl. Kembali
No. Anggota**

Keterangan :
* : Primary Key
** : Foreign Key

Pada bentuk 2 NF maka masalah inserting, updating, dan deleting sudah


teratasi, tapi ada field-field yang tergantung ke lebih dari satu table (kebergantungan
transitif), yaitu ;
- Tgl. Pinjam
- Tgl. Kembali

Bentuk 3 NF
Pada bentuk normal ke tiga mempunyai syarat setiap table tidak mempunyai
field yang tergantung transitif.

Anggota
No. anggota Buku
Nama Kode Buku
Alamat Judul
Tgl. Masuk Pinjaman
No. Anggota
Kode Buku
Tgl. Pinjam
Tgl. Kembali

Hasil Akhir :
Anggota Buku
No. Anggota Nama Alamat Tgl. Masuk Kode Buku Judul

No. Tgl. Kode


Anggota Tgl. Pinj
Kem Buku

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
BAB VI
ENTITY RELATIONSHIP DIAGRAM

Entity Relationship Diagram adalah high level conceptual data model yang
dikembangkan oleh Chen (1976) untuk menfasilitasi perancangan database Konsep-
konsep dasar dari Entity Relationship Model mencakup Entity, Relation dan Attributes

Alasan diperlukan model E-R :


1. Dapat menggambarkan hubungan antar entity dengan jelas
2. Dapat menggambarkan batasan jumlah entity dan partisipasi antar entity
3. Mudah dimengerti oleh pemakai
4. Mudah disajikan oleh perancang database.

Komponen-komponen yang terdapat dalam E-R terdiri dari :


A. Entity
Sesuatu yang dapat dibedakan dalam dunia nyata dimana informasi yang
berkaitan dengannya dikumpulkan. Entity set merupakan kumpulan kumpulan
entity yang sejenis, yang berupa

a. Entity yang bersifat fisik, yaitu entity yang dapat dilihat.


Contohnya : rumah, kendaraan,
mahasiswa, dosen, dll
b. Entity yang bersifat konsep atau logic, yaitu entity yang tidak dapat dilihat.
Contohnya : pekerjaan, perusahaan, rencana, matakuliah, dll.

Entity dapat dibedakan atas dua jenis yaitu :


• Entity Kuat (Strong Entity) adalah suatu entity yang keberadaannya tidak
tergantung kepada keberadaan entity yang lain. Strong Entity digambarkan
dengan menggunakan persegi empat dilabelkan dengan nama entity.

• Entity Lemah (Weak Entity) adalah suatu entity yang keberadaannya


tergantung kepada keberadaan entity yang lainnya. Weak Entity digambarkan
dengan menggunakan persegi empat yang diberi garis double dilabelkan
dengan nama entity.

B. Attribute
Adalah karakteristik dari entity atau relationship yang menyediakan penjelasan detail
tentang atau relationship tersebut. Attribute value adalah suatu data actual atau informasi
yang disimpan disuatu attribute di dalam suatu entity atau relationship

Attribute dapat dibedakan atas:


• Simple Attribute adalah attribute dimana nilainya tidak dapat dibagi kedalam bagian
yang lebih kecil, disebut juga atomic attribute. Contoh, attribute Sex dan Gaji (Salary).

• Composite Attribute adalah attribute dimana nilainya dapat dibagi kedalam bagian
yang lebih kecil. Contoh, Alamat (Jl. Proklamasi No. 20 Padang Sumatera
Barat). Attribute ini dapat Dibagi kedalam Jalan, Nomor, Kota dan Propinsi.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Keputusan untuk memodelkan attribute Alamat sebagai simple atau composite
adalah tergantung kepada bagaimana user memandang attribute tersebut.

• Single Valued Attribute adalah attribute yang hanya boleh mengandung satu nilai
tertentu. Contoh, entity kantor cabang mempunyai satu nilai untuk nomor kantor
cabang (Branch_no), misalnya B3.

• Multi Valued Attribute adalah attribute yang boleh mempunyai lebih dari satu nilai.
Sebagai contoh, entity kantor cabang mempunyai banyak nomor telepon (telp_no).

• Derived Attribute adalah sebuah attribute yang nilainya diperoleh dari hasil proses
dua atau lebih attribute yang ada. Contoh, Umur (Age) diperoleh dari Tanggal_lahir
(DOB) – Tanggal Sekarang (Sysdate)

C. Key

• Candidate key
Merupakan kunci kandidat dari bebarapa atribut yang terdapat dalam sebuah
entity. Sebagai contoh: Branch number (branch_no) adalah candidate key
untuk entity type Branch.
Candidate key mestilah mempunyai nilai yang unik untuk setiap occurence dari
sebuah entity type, sebagai contoh tiap-tiap branch mempunyai branch
number yang unik (Sebagai contoh B3), dan tidak ada lebih dari satu branch
dengan branch number yang sama.

• Primary Key
Sebuah type entity dapat mempunyai satu atau lebih candidate key. Satu dari
candidate key dipilih menjadi sebuah primary key.
Sebagai contoh, Staff mempunyai National Insurance Number (NIN) yang unik
dan juga Staff Number. Dalam hal ini mempunyai dua buah candidate key
untuk entity staff, satu daripadanya harus dipilih untuk menjadi primary key.
Contoh lainya yaitu : Company mendefinisikan Staff Number (contoh: SG14)
adalah dalam size yang lebih pendek dibandingkan dengan National Insurance
Number (contoh: WL220658D). Maka, berdasarkan ini, Staff Number menjadi Primary
Key dan National Insurance Number menjadi Alternate Key.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
• Composite Key
Dalam beberapa kasus, Key dari sebuah entity adalah terdiri dari beberapa
attribute karena nilainya adalah unik untuk sebuah entity. Sebagai contoh,
entity Misalkan Entity ADVERT mempunyai attribute-attribute berikut:
{property_no, newspapaer_name, date_advert dan cost}.
Beberapa property diiklankan pada banyak newspaper dalam satu tanggal
tertentu. Untuk mengidentifikasi occurrence dari entity ADVERT diperlukan
nilai-nilai dari atrribute property_no, newspaper_name dan date_advert.
Maka entity ADVERT mempunyai composite primary key yaitu: {property_no
+ newspaper_name + date_advert}

D. Relationship
Adalah hubungan yang terjadi antara satu atau lebih entity. Relationship tidak
mempunyai keberadaan fisik, kecuali yang mewarisi hubungan antara entity
tersebut. Relasionship set adalah kumpulan relationship yang sejenis.

E. Garis
Yang menghubungkan antar objek dalam diagram E-R

Kardinalitas Pemetaan
Kardinalitas pemetaan atau rasio kardinalitas menunjukkan jumlah entity yang
dapat dihubungkan ke satu entity lain dengan suatu relationship sets.
Kardinalitas pemetaan meliputi :
1. Hubungan satu ke satu (one to one).
Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam
2. Hubungan satu ke banyak (one to many)
Yaitu satu entity dalam A dihubungkan dengan sejumlah entity dalam B.
Satu entity dalam B dihubungkan dengan maksimum satu entity dalam A.
3. Hubungan banyak ke satu (many to one)
Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam
B. Satu entity dalam B dapat dihubungkan dengan sejumlah entity dalam A.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
4. Hubungan banyak k banyak (many to many).
Satu entity dalam A dihubungkan dengan sejumlah entity dalam B, &
satu entity dalam B dihubungkan dengan sejumlah entity dalam A.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
BAB VII
PERANCANGAN DATABASE DENGAN TEKNIK ERD

E-R atau Entity Relationship adalah teknik menghubungkan tabel-tabel Entitas


menurut pedoman Konsep Sistem Basis Data.

Jenis-jenis tingkat hubungan antar entitas (Cardinality):


1. One to One (1 to 1)
Hubungan antara file pertama dan file kedua adalah satu
berbanding satu. Contoh:

Mahasiswa milik NIM

Dibaca: Satu orang mahasiswa (hanya) memiliki satu buah NIM dan satu buah
NIM (hanya) dimiliki oleh satu orang mahasiswa.

2. One to Many (1 to M)
Hubungan antara file pertama dan file kedua adalah satu berbanding banyak
atau banyak berbanding satu.
Contoh:

Proyek kerja Buruh

Dibaca: Sebuah proyek mempekerjakan banyak buruh dan seorang buruh


(hanya) bekerja pada satu proyek.

3. Many to Many (M to N)
Hubungan antara file pertama dan file kedua adalah banyak berbanding

Dosen Ngajar Mahasiswa

banyak. Contoh:

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Dibaca: Seorang dosen mengajar banyak mahasiswa dan seorang mahasiswa
diajar oleh banyak dosen.

Penerapan Teknik E-R dalam perancangan Basis Data


Langkah-langkah:
1. Menganalisa sistem yang berjalan
a. Wawancara
b. Pengamatan (observasi)
2. Menyusun kamus data (data dictionary)
3. Memilih primary key dari kamus data yang tersusun, dengan syarat unik dan
mewakili sebuah entity.
4. Membentuk tabel-tabel entitas berdasarkan primary key yang terpilih dengan
syarat tiap tabel tidak boleh mengandung field yang bergantung transitif.
5. Menganalisa relasi yang terjadi antar tabel entitas dan menggambarkannya.
Relasi yang terjadi bisa One to One, One to Many atau Many to Many.
6. Menggambarkan hubungan antar entitas berdasarkan analisa relasi yang
didapat dan memasang kunci-kunci relasi (foreign key) dengan aturan:

a. Bila relasi One to One, foreign key ditaruh pada ke-2 file atau dijadikan
satu.
b. Bila relasi One to Many, foreign key ditaruh pada file yang Many.
c. Bila relasi Many to Many, maka dibuat file konektor yang berisi 2 foreign
key dan atribut yang bergantung transitif.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Contoh penerapan teknik E-R
1. Amatilah berkas berikut ini:

Kd_buk Judu Pengaran Tgl_pinjam Tgl_kembal


u l g i

Hasil wawancara: “Di perpustakan ini, ada beberapa buku dengan judul dan
pengarang yang sama, namun demikian masing-masing buku memiliki kode
buku sendiri-sendiri. Seorang mahasiswa boleh meminjam buku lebih dari
satu!”

2. Menyusun kamus data:


• NIM = nomor induk mahasiswa
• Nama = nama mahasiswa
• Kd_buku = kode buku
• Judul = judul buku
• Pengarang = pengarang buku
• Tgl_pinjam = tanggal peminjaman
• Tgl_kembali = tanggal kembali buku yang dipinjam

3. Menentukan primary key


Dari kamus data yang terbentuk, maka dapat ditentukan primary key sebagai
berikut::
• NIM
• Kd_buku

4. Membuat tabel entitas

Mahasiswa Buku
NIM Kd_buku
Di taruh di manakah field yang belum membentuk
Nama Judul
tabel ?
….
….. ….. Lengkapilah tabel yang terbentuk dgn field yg
…… …… diperlukan!

5. Menganalisa relasi antar tabel entitas


Hasil analisa: Seorang mahasiswa bisa meminjam banyak buku dan satu buku
dapat dipinjam oleh banyak mahasiswa.
Diagram:
Mahasiswa pinjam Buku

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
6. Menggambarkan hubungan antara entitas:

Mahasiswa Pinjam Buku


NIM NIM Kd_buku
Nama Kd_buku Judul
Alamat Tgl_pinjam
Tgl_kembal Penerbit
Telepon i

Mahasiswa pinjam Buku

Keterangan:
One to One
One to Many
Many to Many

Dari diagram tersebut, File Pinjam adalah file konektor, yang berisi foreign key
(NIM dan Kd_buku) serta berisi field-field yang bergantung transitif, yaitu
Tgl_pinjam dan Tgl_kembali. Perhatikan area yang berada dalam garis putus-
putus! Area tersebut menggambarkan relasi yang terjadi antar entitas, yang
sebelumnya digambarkan dengan diagram E-R.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
BAB VIII
STRUCTURED QUERY LANGUAGE (SQL)

Sistem basis data komersial menghendaki adanya sebuah bahasa query yang lebih
user- friendly. Oleh karena itu dikenal SQL sebagai bahasa query yang marketable.
SQL menggunakan kombinasi aljabar relasional & kalkulus relasional. Meskipun SQL
adalah bahasa query, namun SQL mempunyai banyak kemampuan lain disamping
melakukan query terhadap basis data. SQL mempunyai kemampuan untuk
mendefinisikan struktur data, modifikasi data dalam basis data dan menentukan
konstrain sekuriti.

SQL merupakan bahasa basis data relasional standard. Terdapat macam-macam


versi SQL. Versi aslinya pertama kali dikembangkan oleh IBM San Jose Research
Laboratory.

Bahasa SQL mempunyai beberapa bagian yaitu :


• Data Definition Language (DDL)
DDL memberikan perintah untuk mendefinisikan skema relasi, penghapusan
relasi, membuat indeks dan modifikasi skema relasi.

• Interactive Data-Manipulation Language (DML)


DML merupakan bahasa query yang berdasarkan pada aljabar relasi dan
kalkulus relasi tuple. Termasuk didalamnya adalah perintah untuk penyisipan,
penghapusan dan modifikasi.

• Embedded DML
Bentuk embedded SQL biasanya terdapat dalam bahasa pemrograman multi
guna seperti PL/I, Cobol , Pascal dan Fortran.

• View Definition
DDL SQL memasukkan perintah untuk mendefinisikan view.

• Authorization
DDL SQL memasukkan perintah untuk menentukan hak-hak akses ke relasi dan
view.

• Integrity
DDL SQL memasukkan perintah untuk menentukan konstrain integritas yang
harus dipenuhi oleh data yang tersimpan dalam basis data.

• Transaction control
SQL memasukkan perintah-perintah untuk menentukan awal dan akhir transaksi.
Beberapa implementasi juga memungkinkan locking data untuk concurrency
control.

1. DDL (Data Defenition Language)


Data Defenition Language merupakan bagian dari SQL yang digunakan
untuk mendefenisikan data dan objek database. Perintah digunakan untuk
mendefenisikan suatu objek, yaitu membuat, mengubah, menghapus dan
memberikan izin.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Beberapa peritah DDL, yaitu :
a. CREATE DATABASE
Berguna untuk membuat
database CREATE
DATABASE Penusa;

b. CREATE TABLE
Berguna untuk membuat table.
CREATE TABLE MAHASISWA(

NPM Varchar(10) PRIMARY KEY,


Nama Varchar(45) NOT NULL,
Jenjang Varchar(10),
Jurusan Varchar(30) )

c. ALTER TABLE
Berguna utnuk mengubah atau menyisipkan ke dalam table

ALTER TABLE Mahasiswa ADD Tahun Char(4);

d. DROP TABLE
Berguna untuk menghapus table
Drop Table Mahasiswa ;

2. DML (Data Menipulation Language)

Data Manipulation Language merupakan bagian dari SQL yang digunakan


untuk manipulasi data. Perintah-perintah ini bertugas melakukan query dan perubahan
yang dilakukan didalam suatu tabel.

a. INSERT
Berguna untuk menyisipkan baris dari suatu table

INSERT INTO PEGAWAI VALUES( ‘0001’, ‘Ir. M. Anton’, ‘K01’ ) ;


INSERT INTO PEGAWAI VALUES( ‘0002’, ‘Arianti, S.Kom’, ‘S01’ ) ;

INSERT INTO JABATAN VALUES( ‘K01’, ‘KaBag Keuangan’, 3500000 ) ;


INSERT INTO JABATAN VALUES( ‘S01’, ‘Staf Keuangan’, 2000000 );

b. SELECT
Digunakan untuk memilih data dari suatu table atau view

SELECT [ALL | DISTINCT ]


Nama_kolom_kolom_table
[INTO Nama_Tabel ]
[FROM Nama_nama_Tabel ]
[WHERE Predikat ]
[GROUP BY Ekspresi ]
[ORDER BY Nama_kolom_Tabel ] ;

SELECT * FROM PEGAWAI ;


Untuk menampilkan semua field dari Table Pegawai

SELECT Nama FROM PEGAWAI ;


Hanya menampilkan Field Nama dari Table Pegawai

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
SELECT * FROM JABATAN WHERE Kode=’K01’ ;
Hanya menampilkan semua Field Nama dari Table Pegawai dimana kode = ‘K01’

SELECT Pegawai.Nama, Jabatan.Nama as NmJabatan, Jabatan.Gaji FROM


Pegawai, Jabatan

SELECT a.Nama, b.Nama as NmJabatan, b.Gaji FROM Pegawai a, Jabatan b

c. DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

d. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

Contoh Kasus :
1. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

2. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.


3. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

4. Hapus Mata Kuliah dengan nama Kalkulus


5. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
e. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
f. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

Contoh Kasus :
6. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

7. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.


8. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

9. Hapus Mata Kuliah dengan nama Kalkulus


10. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
g. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

h. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Contoh Kasus :
11. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

12. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
13. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

14. Hapus Mata Kuliah dengan nama Kalkulus


15. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
i. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu

table DELETE FROM Jabatan WHERE

Kode=’K01’ ;

j. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE

NIP=’0002’ ;

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Contoh Kasus :
16. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35
17. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
18. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

19. Hapus Mata Kuliah dengan nama Kalkulus


20. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
k. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

l. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

Contoh Kasus :
21. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
22. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
23. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

24. Hapus Mata Kuliah dengan nama Kalkulus


25. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
m. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

n. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

Contoh Kasus :
26. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

27. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
28. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

29. Hapus Mata Kuliah dengan nama Kalkulus


30. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
o. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

p. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

Contoh Kasus :
31. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

32. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
33. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

34. Hapus Mata Kuliah dengan nama Kalkulus


35. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
q. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
r. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

Contoh Kasus:
36. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

37. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
38. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

39. Hapus Mata Kuliah dengan nama Kalkulus


40. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
s. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

t. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Contoh Kasus :
41. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35
42. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
43. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

44. Hapus Mata Kuliah dengan nama Kalkulus


45. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
u. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

v. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’

Contoh Kasus :
46. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
47. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
48. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

49. Hapus Mata Kuliah dengan nama Kalkulus


50. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
w. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

x. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

Contoh Kasus :
51. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

52. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
53. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

54. Hapus Mata Kuliah dengan nama Kalkulus


55. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
y. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

z. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

Contoh Kasus :
56. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

57. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
58. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

59. Hapus Mata Kuliah dengan nama Kalkulus


60. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
aa. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
bb. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

Contoh Kasus :
61. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

62. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
63. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

64. Hapus Mata Kuliah dengan nama Kalkulus


65. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
cc. Perbaiki record Jurusan TI menjadi DELETE
Berguna untuk menghapus baris dari suatu table

DELETE FROM Jabatan WHERE Kode=’K01’ ;

dd. UPDATE
Untuk mengubah isi dari kolom (field) pada suatu table

UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Contoh Kasus :
66. Buatlah perintah SQL untuk membuat table di bawah ini :
Nama Table : MataKuliah
Field Type Size
KdMTK Text 8
Nama Text 40
SKS Byte 1
Semester Text 5

Nama Table : Mahasiswa


Field Type Size
NPM Text 8
Nama Text 40
Jenjang Text 5
Jurusan Text 35

67. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah.
68. Masukkan beberapa Record di bawah ini, yaitu :
KdMTK Nama SKS Semester Kelompok
PKMI3101 Agama 3 I MPK
KKMI3211 Kalkulus 3 II MKK
KKMI3501 Teknik Riset Operasional 3 V MKK
KBMI3101 Paket Program Niaga I 3 I MKB
KBMI3201 Paket Program Niaga II 3 II MKB
KBMI3301 Struktur Data 3 III MKB

NPM Nama Jenjang Jurusan


0602010 Reni Agusti D3 MI
0602011 Johan Prabudi D3 MI
0602001 Meri Rianti D3 TI
0602014 M. Ichan D3 MI

69. Hapus Mata Kuliah dengan nama Kalkulus


70. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan
Perbaiki record Jurusan TI menjadi M

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
BAB IX
KEAMANAN DATABASE

Keamanan Database
Ø Data merupakan sumber daya bernilai yang harus di atur dan diawasi secara ketat
bersama dengan sumber daya corporate.
Ø Sebagian atau keseluruhan data corporate mempunyai kepentingan strategis dan
karena itu harus dijaga agar tetap aman dan rahasia.
Ø Database Security merupakan mekanisme yang menjaga database dari
serangan/ancaman yang disengaja maupun tidak sengaja.
Ø Pertimbangan keamanan tidak hanya diaplikasikan pada data yang ada dalam
database. Pelanggaran terhadap keamanan dapat mempengaruhi bagian lain dari
sistem, yang akan memberi akibat balik terhadap database.
Ø Keamanan database terkait dengan keadaan berikut :
• Pencurian dan penipuan (theft and fraud)
• Kehilangan kerahasiaan (Loss of confidentiality)
• Kehilangan keleluasaan pribadi (Loss of privacy)
• Kehilangan integritas (Loss of integrity)
• Kehilangan ketersediaan (Loss of availability)
Ø Ancaman (threat) adalah segala situasi atau kejadian, baik disengaja maupun
tidak disengaja yang dapat menimbulkan efek merugikan terhadap system dan
berikutnya organisasi .

Summary of Threats to Computer Systems

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Typical Multi-User Computer Environment

Tindakan terhadap ancaman (Countermeasures – Computer-Based Controls)


Berbagai tindakan balasan untuk ancaman yang terjadi dikaitkan dengan kontrol fisik
sampai dengan prosedur administrative yang menyertakan :
Ø Authorisasi (Authorization)
Ø View
Ø Back-up dan Recovery
Ø Integrity
Ø Encryption
Ø RAID Technology

• Authorization (Otorisasi)
Pemberian hak atau wewenang, yang menyebabkan subjek memiliki legitimasi
untuk mengakses system atau objek-objek dalam system.
• Authentication (Pembuktian keaslian)
Suatu mekanisme yang menentukan apakah user yang mengakses benar-
benar user yang dimaksud.
• View
Merupakan hasil dinamis dari satu atau lebih operasi relasional yang
dioperasikan pada relasi/table dasar untuk menghasilkan relasi/table lainnya.
View merupakan relasi/table virtual yang tidak benar-benar ada dalam database,
tetapi dihasilkan berdasarkan permintaan oleh user tertentu pada saat tertentu.
• Back Up
Suatu proses yang secara periodik mengambil salinan database dan log file
(dapat juga berupa program) untuk disimpan pada media penyimpanan offline.
• Journaling
Suatu proses pemeliharaan dan penyimpanan log file (jurnal) dari semua
perubahan yang dilakukan terhadap database untuk kemudahan recovery bila
terjadi kerusakan (failure).
• Integrity
Mencegah data dari ketidaksesuaian (invalid) dan mengakibatkan pemberian
hasil yang salah.
• Encryption

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Penyandian (encoding) data dengan menggunakan algoritma khusus yang
membuat data tidak dapat dibaca oleh program tanpa kunci decryption.

• RAID (Redundant Array of Independent Disks) Technology


Ø Hardware dimana DBMS berjalan dengan fault-tolerant, yang berarti bahwa
DBMS harus tetap melanjutkan operasi walaupun terdapat satu komponen
hardware yang rusak (fail).
Ø Memberikan kesan memiliki komponen redundant (lebih) yang dapat
diintegrasikan kedalam sistem kerja walaupun terdapat satu atau lebih
kerusakan komponen.
Ø Komponen hardware utama yang harus memiliki fault-tolerant meliputi disk
drives, disk controllers, CPU, Power supplies, cooling fans.
Ø Disk drives merupakan komponen yang paling mudah diserang dengan jarak
yang dekat antar kerusakan dibandingkan dengan komponen hardware
lainnya.
Ø Salah satu solusinya dengan menggunakan RAID technology, yaitu
menyediakan serangkaian besar disk, yang terdiri dari susunan beberapa disk
independen diatur untuk memperbaiki ketahanan (reliability) dan
meningkatkan performa (performance).
Ø Performa (performance) meningkat melalui data striping, yaitu data
disegmentasi (dibagi) menjadi beberapa bagian dengan ukuran yang sama
(striping units), yang secara jelas didistribusikan melewati beberapa disk.
Ø Ketahanan (reliability) diperbaiki melalui penyimpanan informasi berlebih
(redundant) melewati disk dengan menggunakan skema parity atau skema
error-correcting.

Kemanan pada Microsoft Access DBMS


Menyediakan dua metode untuk pengamanan database, yaitu :
Ø Penetapan password untuk membuka database (keamanan sistem)
Ø Keamanan tingkat user, yang dapat digunakan untuk membatasi bagian dari
database yang dapat dibaca/di-update oleh user (keamanan data)

Securing the DreamHome Database Using a Password

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
User and Group Accounts Dialog Box for the DreamHome Database

User and Group Permissions Dialog Box

Creation of a New User with Password Authentication Set

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Log on Dialog Box

Setting the Permissions

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
DBMS dan Keamanan Web

Ø Komunikasi internet dipercayakan pada TCP/IP sebagai protocol utama.


Ø Bagaimanapun TCP/IP dan HTTP tidak didesain dengan pemikiran keamanan.
Tanpa software khusus, semua jalur internet berjalan secara terbuka dan
siapapun yang melihat jalur tersebut dapat membacanya.
Ø Yang harus dipastikan pada saat pengiriman informasi melalui internet yaitu :
• Tidak dapat diakses oleh siapapun kecuali pengirim dan penerimanya
(privacy).
• Tidak diubah selama pengiriman (integrity).
• Penerima merasa yakin bahwa data tersebut berasal dari
pengirim yang dimaksud (authenticity).
• Pengirim merasa yakin bahwa penerima adalah penerima yang
sebenarnya (non fabrication).
• Pengirim tidak dapat menyangkal bahwa dirinya yang mengirim
data (non repudiation)
Ø Harus dapat menjaga informasi ketika sudah mencapai web server.
Ø Executable Content dapat menampilkan malicious action dan tindakan harus
dilakukan untuk mencegahnya, yaitu :
• Data rusak atau Execution state dari program
• Format ulang disk lengkap
• Melaksanakan pe-nonaktif-an sisten secara total
• Mengumpulkan dan mengambil data rahasia
• Merebut identitas dan menirukan (impersonate) user
• Lock up resources, menyebabkan tidak dapat digunakan untuk user dan
program
• Berakibat tidak fatal tetapi memberikan hasil yang tidak diinginkan,
terutama pada output device.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
BAB X
DATABASE RECOVERY

Database Recovery merupakan suatu proses penyimpanan/pengembalian


database ke state yang benar pada saat terjadi kerusakan. Kebutuhan atas kontrol
recovery disebabkan karena penyimpanan data pada umumnya menggunakan
empat jenis media penyimpanan berdasarkan tingkat reliabilitas/tahan uji-nya.
Terdapat 2 jenis penyimpanan
:
Ø Volotile storage, biasanya tidak bertahan jika terjadi kerusakan sistem
(system crash). contohnya : main memory
Ø Nonvolotile storage, magnetic disk merupakan online nonvolatile storage
dan magnetic tape merupakan offline nonvolatile storage. lebih reliable dan
lebig murah. Stable storage, merepresentasikan informasi yang telah
direplika kedalam beberapa media penyimpanan non-volotile (biasanya
disk) dengan jenis kerusakan yang terpisah.

Terdapat beberapa jenis kerusakan yang dapat mempengaruhi proses


database. Beberapa kerusakan hanya mempengaruhi main memory saja atau juga
media yang lain. Kerusakan tersebut diakibatkan oleh :
Ø System Crashes, menyebabkan hilangnya data dari main memory.
Ø Media Failures, menyebabkan hilangnya sebagian data dari media
penyimpanan secondary.
Ø Application Software errors, misalnya logical erroryang terdapat dalam
program yang mengakses database sehingga menyebabkan satu atau
lebih transaksi mengalami kegagalan.
Ø Natural physical disaster, bencana alam/musibah seperti :kebakaran,
banjir, gempa bumi, kerusakan listrik.
Ø Carelessness, kecerobohan atau tindakan tidak sengaja yang
menyebabkan kerusakan data, yang dilakukan oleh operator atau user.
Ø Sabotage, sabotase atau tindakan sengaja merusak atau mencuri data,
fasilitas harware maupun software.

Transaksi dan Recovery


Transaksi merepresentasikan unit dasar dari recovery dalam sistem database.
Recovery manager bertanggung jawab atas atomicity dan durability. Jika kesalahan
terjadi antara penulisan ke buffer dan mengirimkan buffer database ke penyimpanan
sekunder maka recovery manager harus menetapkan status dari transaksi yang
melakukan penulsan pada saat terjadi keruskan. Jika transaksi dinyatakan commit,
maka untuk memastikan durability, recovery manager harus melakukan redo
(rollforward) terhadap perubahan transaksi.
Jika transaksi belum committed pada saat terjadi kerusakan, recovery
manager harus melakukan undo (rollback) segala akibat dari transaksi tersebut untuk
menjamin atomicity transaksi. Jika hanya terdapat satu transaksi yang tidak
diselesaikan, maka mengacu ke partial undo. Sedangkan jika seluruh transaksi tidak
terselesaikan maka mengacu ke- global undo.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
DBMS Mulai pada saat t0, tetapi gagal pada saat tf. Diasumsikan data untuk
transaksi T2 dan T3 telah dituliskan ke penyimpanan sekunder. T1 dan T6 harus tidak
terselesaikan. Dikarenakan ketiadaan informasi lain, maka recovery manager harus
melakukan redo untuk T2, T3, T4, dan T5.

STATUS TRANSAKSI & OPERASI TAMBAHAN


Suatu transaksi adalah unit terkecil dari kerja yang dapat diselesaikan atau tidak
dapat diselesaikan. Beberapa operasinya dengan diagram transisinya :

§ BEGIN_TRANSACTION : memulai transaksi


§ READ or WRITE : operasi baca atau tulis dari item database yang dieksekusi
sebagai bagian dari transaksi
§ END_TRANSACTION : operasi transaksi READ atau WRITE selesai dilakukan
§ COMMIT_TRANSACTION : transaksi berakhir sukses sehingga semua
perubahan (update) yang dilakukan melalui transaksi dapat dimasukkan ke
database dan akan diselesaikan
§ ROLLBACK (or ABORT) : transaksi berakhir dengan tidak sukses sehingga
semua perubahan atau efek transaksi yang diaplikasikan ke database tidak dapat
diselesaikan.

DBMS harus menyediakan fasilitas berikut untuk mendkung recovery :


Ø Mekanisme Backup, yang akan mebuat salinan dari database secara
periodik.
Ø Fasilitas Logging (pencatatan), yang menyimpan catatan dari stata
transaksi dan perubahan database.
Ø Fasilitas Checkpoint, yang memungkinkan merubah database yang

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
sedang dalam pengembangan menjadi permanen.
Ø Recovery manager, yang mengizinkan DBMS untuk menyimpan database
pada stata konsisten jika terjadi kerusakan/kesalahan.

Log File (File catatan)


Untuk menyimpan catatan dari transaksi database, DBMS memiliki file khusus yang
disebut log file , yang berisi informasi tentang semua perubahan terhadap database.
Catatan dapat berisi data-data berikut :
Ø Record Transaksti.
u Identifier transaksi
u Tipe dari record catatan (transaksi start, insert, update, delete, abort,
commit)
u Identifier dari data item yang diakibatkan oleh aksi database (operasi
insert, delete dan update)
u before-image dari data item, yaitu nilai sebelum dilakukan perubahan
(hanya operasi update dan delete)
u after-image dari data item, yaaitu nilai sesudah perubahan (hanya
operasi insert dan update)
u Informasi manajemen catatan, seperti pointer ke record catatan
sebelum (previous) dan sesudah (next) untuk transaksi tersebut
(seluruh operasi)
Ø Record Checkpoint
Catatan biasa digunakan untuk kepentingan lain dibandingkan untuk recovery
(contoh untuk monitoring (pengawasan) dan auditing). Dalam hal ini informasi
tambahan yang dapat disimpan dalam log file (contoh : pembacaan database, logon
user, logoff dan lainnya)

Contoh Log File

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
Log file dapat dibuat duplexed atau triplexed (yaitu dibuat dua atau tiga salinan
terpisah), sehingga bila yang satu rusak masih terdapat yang lain. Terkadang Log file
dipisahkan menjdai dua file random-access yang terpisah. Potensial terjadi
bottleneck, dimana kecepatan penulisan kedalam log file dapat menjadi kritis dalam
menentukan keseluruhan performa sistem database.

Checkpointing
Checkpoint adalah titik dari penyelarasan (synchronization) antara database
dan log file. Checkpoint dijadwalkan saat penetapan sebelum interval dan
menyertakan operasi berikut:
• Menuliskan seluruh record log dalam main memory kedalam
penyimpanan sekunder.
• Menuliskan blok perubahan dalam buffer database ke penyimpanan
sekunder.
• Menuliskan record checkpoint kedalam log file. record ini berisikan
identifier dari seluruh transaksi aktif pada saat checkpoint.

Jika kerusakan terjadi, akan melaksanakan redo seluruh transaksi yang


committed sejak check point dan melaksanakan undo seluruh transaksi aktif pada
saat gagal (crash) . Pada contoh yang lalu dengan checkpoint pada saat tc, perubahan
yang dibuat oleh T2 dan T3 telah dituliskan kedalam penyimpanan sekunder, karena
itu dilakukan :
• Hanya melaksanakan redo T4 dan T5
• undo transaksi T1 dan T6.

Teknik Recovery
Jika database mengalami kerusakan seperti :
• Jika database mengalami kerusakan secara luas, misalnya kerusakan disk
head dan kerusakan database, maka perlu dikembalikan ke back-
up/salinan terakhir dari database dan diaplikasikan ulang operasi update
dari transaksi yang committed dengan menggunakan log file.
• Jika database hanya mengalami ketidak-konsistenan (inconsistent), maka
harus melakukan undo perubahan-perubahan yang menyebabkan tidak
konsisten. Juga perlu melakukan redo terhadap beberapa transaksi untuk
menjamin perubahan yang dilakukan telah disimpan ke penyimpanan
sekunder. Tidak memerlukan

back-up salinan dari database tetapi dapat mengembalikan database ke


stata konsisten dengan menggunakan before dan after image yang ada
dalam log file.

Dari dua contoh kasus diatas, maka terdapat tiga teknik recovery :
Ø Deferred Update
Ø Immediate Update
Ø Shadow Paging

Deferred Update
Dengan menggunakan protocol recovery deferred update, update tidak
dituliskan kedalam database sampai dengan transaksi mencapai titik commit. Jika
transaksi gagal sebelum commit, maka update tersebut tidak akan merubah
database dan tidak perlu melakukan undo perubahan. Tetapi mungkin perlu
melakukan redo update dari transaksi yang committed sebagai akibat tidak mencapai

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
database. Dalam hal ini digunakan log file untuk perlindungan dari kesalahan sistem
dengan cara :
Ø Ketika mulai transaksi, tuliskan record transaction start pada log file
Ø ketika operasi penulisan dilaksanakan , tuliskan record log berisikan seluruh
data log yang telah dispesifikasikan sebelumnya. Tidak menuliskan update
pada buffer database atau database itu sendiri.
Ø Ketika transaksi commit, tuliskan transaction commit pada record log, tulis
seluruh record log transaksi ke disk, kemudian selesaikan transaksi. Gunakan
record log untuk menjalankan update pada database.
Ø Jika transaksi gagal, abaikan record log transaksi dan jangan melakukan
penulisan.

Immediate Update
Dengan menggunakan protocol recovery immediate update, Update di
aplikasikan pada data base ketika dijalankan tanpa harus menunggu titik commit.
Perlu melakukan redo update dari transaksi committed jika terjadi kesalahan, menjadi
penting untuk mengulang (undo) akibat dari transaksi yang belum committed pada
saat terjadi kesalahan. Dalam kasus ini digunakan log file untuk perlindungan
terhadap kesalahan sistem dengan cara:
Ø Jika transaksi dimulai, tuliskan record transaction start pada log file.
Ø Ketika operasi penulisan dilaksanakan, tuliskan record berisikan data-data
yang dianggap perlu kedalam log file.
Ø Ketika log file sudah ditulis, tuliskan update pada buffer database.
Ø Update terhadap database itu sendiri dilakukan ketika buffer dikirimkan
kemudian ke penyimpanan sekunder.
Ø Ketika transaksi commit, tuliskan record transaction commit di log file.

Pada dasarnya record log dituliskan sebelum penulisan yang sesuai pada
database, dikenal dengan Write-ahead log protocol. Jika tidak terdapat record
“transaction commit” dalam log, kemudian transaksi tersebut aktif pada saat terjadi
kesalahan daka harus digagalkan.
Jika transaksi gagal, log dapat digunakan untuk melakukan undo
(melaksanakan in reverse order) dimana telah dituliskan dalam log file.

Shadow Paging
Mengatur/memelihara dua table selama transaksi berlangsung yaitu : tabel current
page dan shadow page. Ketika transaksi dimulai, kedua tabel tersebut sama. tabel
shadow page tidak akan diubah sesudah itu dan digunakan untuk mengembalikan
database pada saat terjadi kesalahan. Selama transaksi berlangsung tabel current
page digunakan untuk mencatat seluruh update terhadap database. Ketika transakti
selesai, tabel current page menjadi tabel shadow page.

PROGRAM STUDI TEKNIK INFORMATIKA


STMIK PELITA NUSANTARA MEDAN
PROGRAM STUDI TEKNIK INFORMATIKA
STMIK PELITA NUSANTARA MEDAN

Anda mungkin juga menyukai