Modul Database

66
Panduan Kuliah Basis Data TI-STMIK DCI’09 DESKRIPSI MATA KULIAH Hampir disemua aspek pemanfaatan perangkat komputer dalam sebuah organisasi / perusahaan senantiasa berhubungan dengan basis data. Perangkat komputer dalam suatu organisasi/perusahaan biasa digunakan untuk menjalankan fungsi Pengelolaan Sistem Informasi, yang dewasa ini sudah menjadi suatu keharusan, demi untuk meningkatkan efesiensi , daya saing, keakuratan, kecepatan operasional organisasi perusahaan. Dan basis data merupakan salah satu komponen utama dalam setiap system operasi. Tidak ada system operasi bisa dibuat/dijalankan tanpa adanya basis data. Basis Data merupakan komponen penting dalam Teknologi Informasi yang dapat mengurangi ketidakpastian dan mempermudah pengambilan keputusan. TUJUAN UMUM Memberikan pemahaman kepada mahasiswa bahwa saat ini pemrosesan data menjadi suatu informasi merupakan suatu keharusan dan bukan merupakan pekerjaan yang gampang. Dengan berbagai macam model data yang harus diolah dan berbagai harapan ketersediaan informasi yang dapat meningkatkan pelayanan kepada para pengguna, maka dibutuhkan suatu teknik tersendiri tentang bagaimana merancang dan membuat model data yang baik. Sampai akhirnya Basis Data yang ada bukan saja mempercepat pemerolehan informasi tetapi juga dapat meningkatkan pelayanan kepada para pengguna informasi tersebut. TUJUAN KHUSUS Agar mahasiswa mendapatkan gambaran lebih rinci tentang pengelolaan data, memahami konsep-konsep yang mendasari terbentuknya sebuah data base, dapat membuat pola hubungan dan keterkaitan antar data dalam sebuah tabel. Sampai akhirnya dapat memahami, merancang dan mengimplementasikan basis data tersebut untuk keperluan ketersediaan informasi yang berkwalitas. STRATEGI PEMBELAJARAN 1 PANDUAN KULIAH BASIS DATA

Transcript of Modul Database

Page 1: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

DESKRIPSI MATA KULIAH

Hampir disemua aspek pemanfaatan perangkat komputer dalam sebuah organisasi / perusahaan

senantiasa berhubungan dengan basis data. Perangkat komputer dalam suatu

organisasi/perusahaan biasa digunakan untuk menjalankan fungsi Pengelolaan Sistem Informasi,

yang dewasa ini sudah menjadi suatu keharusan, demi untuk meningkatkan efesiensi , daya saing,

keakuratan, kecepatan operasional organisasi perusahaan. Dan basis data merupakan salah satu

komponen utama dalam setiap system operasi. Tidak ada system operasi bisa dibuat/dijalankan

tanpa adanya basis data. Basis Data merupakan komponen penting dalam Teknologi Informasi

yang dapat mengurangi ketidakpastian dan mempermudah pengambilan keputusan.

TUJUAN UMUM

Memberikan pemahaman kepada mahasiswa bahwa saat ini pemrosesan data menjadi suatu

informasi merupakan suatu keharusan dan bukan merupakan pekerjaan yang gampang. Dengan

berbagai macam model data yang harus diolah dan berbagai harapan ketersediaan informasi yang

dapat meningkatkan pelayanan kepada para pengguna, maka dibutuhkan suatu teknik tersendiri

tentang bagaimana merancang dan membuat model data yang baik. Sampai akhirnya Basis Data

yang ada bukan saja mempercepat pemerolehan informasi tetapi juga dapat meningkatkan

pelayanan kepada para pengguna informasi tersebut.

TUJUAN KHUSUS

Agar mahasiswa mendapatkan gambaran lebih rinci tentang pengelolaan data, memahami konsep-

konsep yang mendasari terbentuknya sebuah data base, dapat membuat pola hubungan dan

keterkaitan antar data dalam sebuah tabel. Sampai akhirnya dapat memahami, merancang dan

mengimplementasikan basis data tersebut untuk keperluan ketersediaan informasi yang

berkwalitas.

STRATEGI PEMBELAJARAN

Acara Perkuliahan meliputi penyajian materi dan tanya jawab tentang isue terkini tentang teknik-

teknik dan penggunaan Data Base, studi kasus dan penyajian contoh-contoh persoalan yang

melibatkan partisipasi aktif mahasiswa dalam setiap acara perkuliahan. Partisipasi dari mahasiswa

meliputi tanya jawab , latihan-latihan soal dan diskusi baik secara kelompok maupun individu.

TAGIHAN BAGI PESERTA KULIAH :

Mahasiswa diharuskan mengikuti perkuliahan pada hari dan waktu yang telah ditentukan. Dan

mahasiswa wajib mengikuti kegiatan-kegiatan evaluasi/review perkulihan yang meliputi

1

PANDUAN KULIAH

BASIS DATA

Page 2: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Review/Quiz Pra-Kuliah, Tugas/PR, Paper, Ujian Tengah Semester (UTS) dan Ujian Akhir Semester

(UAS) yang merupakan unsur-unsur untuk mendapatkan Nilai Akhir.

PROSEDUR UNTUK MENDAPATKAN NILAI AKHIR

Pada setiap akhir dari pembahasan modul akan dilakukan evaluasi terhadap kemampuan dan

kemajuan belajar untuk setiap mahasiswa. Hasil evaluasi belajar dinyatakan dalam Quiz, dan nilai

dalam setiap Quiz selanjutnya akan dikomulatifkan sampai terbentuk Nilai Akhir yang terdiri dari

unsur-unsur Absen, Quiz (quiz pra-kuliah & quiz mingguan), Tugas/PR, Paper, Ujian Tengah

Semester (UTS) dan Ujian Akhir Semester (UAS). Kemudian Nilai Akhir yang telah diperoleh oleh

masing-masing mahasiswa dikelompokkan dalam golongan Nilai Huruf mutu yang persentasinnya

sebagai berikut :

1. ABSENSI 5 % 4. Paper 10 %

2. Quiz 5 % 5. U T S 30 %

3. Tugas/PR 5 % 6. U A S 45 %

Adapun Pengelompokan dari Nilai Akhir menjadi Nilai Huruf adalah sebagai berikut :

Nilai Akhir Nilai Huruf Bobot Keterangan

80 – 100

67 – 79

55 – 66

40 – 54

< 40

A

B

C

D

E

4

3

2

1

0

Sangat Baik

Baik

Cukup

Kurang

Tidak Lulus

2

Page 3: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

GARIS BESAR PROSES PEMBELAJARAN (GBPP)MATA KULIAH : BASIS DATA

BOBOT SKS: 3 SKS

TUJUAN MATA KULIAH :Menguji kemampuan mahasiswa tentang berbagai prinsip untuk merancang basis data yang memenuhi tuntutan fungsi maupun unjuk kerja sesuai dengan yang dimaksud oleh bagian pengolahan informasi.

TUJUAN POKOK BAHASAN

1. Menjelaskan ruang lingkup matakuliah

1.1Pendahuluan/ overview mata kuliaha. Pengertianb. Tujuanc. Ruang Lingkup

1.2Aturan-aturan perkuliahan, tugas, kuis dan penilaian1.3Kupas buku referensi yang digunakan

2. Menjelaskan konsep dasar basis data.

2.1 Konsep dasar basis dataa. Pendahuluanb. Definisi-definisic. Operasi basis data/ objektif dan penerapan basis data

3. Menjelaskan komponen komponen basis data.

3.1 Komponen basis dataa. Hardware (perangkat keras)b. Operating system (sistem operasi)c. Database management system (sistem pengelolaan basis data)d. Aplikasi basis datae. User basis data (pemakai basis data)

4. Menjelaskan kegunaan dan syarat basis data.

4.1 Kegunaan basis data/ syarata. Redudansi dan inkonsistensi datab. Pengaksesan dan isolasi datac. Integrasi dan independence datad. Keamanan data (security)

5. Menjelaskan tentang arsitektur basis data.

5.1 Arsitektur sistem basis dataa. Abstraksi datab. Bahasa basis data (databse language)c. Struktur sistem keseluruhan

6. Menjelaskan tentang konsep basis data relasional.

6.1 Basis data relasionala. Definisib. Opersai dan bahasa basis datac. Relasi antar tabel

3

Page 4: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

7. Menjelaskan tentang model model data.

7.1 Model dataa. Representasi model datab. Model entity relationshipc. Diagram entity relationship

8. Menjelaskan tentang konsep normalisasi data.

8.1 Normalisasi dataa. Atribut tabelb. Domain dan tipe datac. Ketergantungan fungsionald. Bentuk-bentuk normalisasi

9. Menjelaskan tentang teknik teknik perancangan basis data.

9.1 Merancang model konseptual basis dataa. Perancangan teknik normalisasi

● Bentuk tidak normal (un normalized form)● Bentuk normal ke satu (1 NF/ first normal form)● Bentuk normal ke dua (2NF/ second normal form)● Bentuk normal ke satu (3 NF/ third normal form)● Boyce cood normal form● Penerapan bentuk normalisasi

b. Perancangan teknik entity relationship● One to one relationship● One to many relationship● Many to many relationship● Penerapan bentuk entity relationship

c. Model data logika● Penerapan bentuk model data logika

10.Menjelaskan model model data tingkat lanjut.

10.1 Model data lanjuta. variant entitas relasib. spesialisasi dan generalisasic. agregasid. key alternatif, pengkodean, dekomposisi dan fleksibilitas

11.Menjelaskan implementasi basis data.

11.1 Implementasi basis dataa. Transformasi model data ke basis data fisikb. DBMS dan struktur tabelc. Indeks dan struktur penyimpanan

12.Menjelaskan bahasa dalam basis data.

12.1 SQL (structured query language)a. Struktur dasarb. Fungsi agregasic. Nilai nulld. Anomali basis datae. Kontrol transaksif. Data definitif language

13.Menjelaskan aplikasi aplikasi basis data dan lingkup penerapannya.

13.1 Aplikasi basis dataa. Arsitektur sistemb. Pemilihan perangkat lunakc. Pemilihan integrasi basis datad. Lingkup penerapan basis data

14.Menjelaskan tentang prespektif perkembangan mata kuliah.

14.1 Penutupa. Prespektif perkembangan aktual dan masa depan mata kuliahb. Review mata kuliah

REFERENSI :

4

Page 5: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

1. Atre S, “Database : Structured Techniques for Design, Performance and Management”, John Wiley and Sons, 1980.

2. CJ Date HM, ”An Introduction to Database System”, Addison Wesley, 6th editions, 1995.

3. Fatansyah, “Basis Data”, CV. Informatika, Bandung, 2002.4. Harianto Kristanto, “Konsep dan Perancangan Database”, Andi Offset, Yogyakarta,

1994.

BAB1

PENDAHULUANI. KONSEP DASAR BASIS DATA

A. Definisi

Basis Data terdiri atas 2 (dua) kata yaitu Basis dan Data. Basis dapat diartikan sebagai markas

atau gudang, tempat bersarang atau berkumpul. Sedangkan Data adalah reperesentasi fakta

dunia nyata yang mewakili suatu objek. Basis Data sendiri dapat didefinisikan dalam sejumlah

sudut pandang tertentu :

Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa

dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.

Kumpulan file-file yang saling berelasi dan relasi tersebut biasanya ditunjukan dengan kunci

dari tiap file yang ada, yang disimpan dalam media penyimpanan elektronis. Satu basis data

menunjukan satu kumpulan data yang dipakai dalam lingkup perusahaan, instansi.

5

disk

File Mahasiswa

File Matakuliah

File Dosen

File Kuliah/Nilai

Page 6: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Basis Data di Sebuah Harddisk.

Hampir disemua aspek pemanfaatan perangkat komputer dalam sebuah organisasi atau

perusahaan senantiasa berhubungan dengan basis data. Perangkat komputer ini biasanya

digunakan untuk menjalankan fungsi Pengolahan Sistem Informasi, yang dewasa ini sudah

menjadi suatu keharusan, untuk meningkatkan efisiensi, daya saing, keakuratan, kecepatan

operasional perusahaan. Dan basis data merupakan salah satu komponen utama dalam setiap

sistem informasi, tidak ada sistem informasi yang bisa buat atau dijalankan tanpa adanya basis

data.

B. Istilah – Istilah

Entity

Entity adalah orang, tempat, kejadian atau konsep yang informasinya direkam. Misalnya pada

sekolah terdapat entity mahasiswa, matakuliah, dosen, nilai test dan lain-lain.

Atribute

Setiap entity mempunyai atribute atau sebutan untuk mewakili suatu entity. Seorang

mahasiswa dapat dilihat dari atributenya, misalnya nim, nama, alamat, jenis kelamin dan lain-

lain. Atribute juga disebut sebagai data elemen, data field, data item.

Data value (nilai atau isi data)

Adalah data actual atau informasi yang disimpan pada tiap data elemen atau atribute. Atribute

nama mahasiswa menunjukan tempat dimana informasi nama mahasiswa disimpan, sedang

data value adalah Pita, Respati, merupakan isi data nama mahasiswa tersebut.

Record (tupel)

Yaitu kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entity

secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang misalnya,

nomor induk mahasiswa, nama, alamat, jenis kelamin dan seterusnya.

File

Kumpulan record-record sejenis yang mempunyai panjang elemen yang sama, atribute yang

sama, namun berbeda-beda data valuenya.

Database

Kumpulan file-file yang mempunyai kaitan antara satu file dengan file yang lain sehingga

membentuk satu bangunan data untuk menginformasikan satu perusahaan, instansi dalam

batasan tertentu.

Database Management System (DBMS)

6

Page 7: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Kumpulan file yang saling berkaitan bersama dengan program untuk pengelolaannya disebut

DBMS. Database adalah kumpulan datanya, sedangkan program pengelolanya berdiri sendiri

dalam satu paket program yang berfungsi untuk membaca data, mengisi data, menghapus data

serta melaporkan data dalam database.

C. Operasi Dasar Basis Data

Operasi dasar yang dapat dilakukan oleh basis data meliputi :

Pembuatan basis data baru (create database)

Penghapusan basis data (drop database)

Pembuatan file/table baru ke dalam basis data (create table)

Penghapusan file/table dari suatu basis data (drop table)

Penambahan data baru ke sebuah file di sebuah basis data (insert)

Pengambilan data dari sebuah file (retrieve/search)

Pengubahan data dari dari sebuah file (update)

Penghapusan data dari sebuah file (delete)

D. Objektif dan Penerapan Basis Data

Pemanfaatan basis data dilakukan untuk memenuhi sejumlah tujuan (objektif) seperti berikut :

Kecepatan dan kemudahan (Speed)

Efisiensi ruang penyimpanan (Space)

Keakuratan (Accurate)

Ketersediaan (Availability)

Kelengkapan (Completeness)

Keamanan (Security)

Kebersamaan pemakai (Sharability)

Secara lebih nyata bidang-bidang fungsional yang telah umum memanfaatkan basis data antara

lain :

Kepegawaian

Pergudangan (inventori)

Akuntansi

Layanan pelanggan (customer care)

Dan lain-lain

Bentuk-bentuk organisasi/perusahaan yang memanfaatkan basis data (sebagai komponen

sistem informasi) dapat berupa: Perbankan, Asuransi, Rumah Sakit, Produsen Barang, Industri

Manufaktur, Pendidikan/ Sekolah, Telekomunikasi dan lain-lain.

II. SISTEM BASIS DATA

a. Definisi

Basis data hanyalah sebuah objek yang pasif. Ia tidak akan pernah berguna jika tidak ada

pengelola atau penggeraknya, yang menjadi pengelola atau penggerak secara langsung adalah

program atau aplikasi (software). Gabungan dari keduanya (basis data dan pengelolanya)

7

Page 8: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

menghasilkan sebuah sistem. Secara umum sebuah sistem basis data merupakan sistem yang

terdiri dari atas kumpulan file (tabel) yang saling berhubungan (dalam sebuah basis data di

sebuah system komputer) dan sekumpulan program (DBMS) yang memungkinkan beberapa

pemakai dan atau program lain untuk mengakses dan memanipulasi file-file (table-tabel)

tersebut.

User

User

User

Sistem Basis Data.

b. Komponen Sistem Basis Data

Perangkat Keras (Hardware)

Perangkat keras yang terdapat dalam sebuah system basis data adalah Komputer (stand

alone atau lebih dari satu/ networking), Memory sekunder (online dan offline) dan media/

perangkat komunikasi.

Sistem Operasi (Operating System)

Program pengelola basis data hanya dapat aktif (running) jika system operasi telah aktif.

Sejumlah Sistem Opersai yang banyak digunakan misalnya : MS-DOS, MS-Windows v.XX

(untuk komputer stand alone atau client dalam jaringan), Novel Netware, MS-Windows

NT/2000, Unix (untuk komputer server dalam jaringan).

Basis Data

Basis data dapat berisi : File/table, indeks dll. Disamping berisi dan menyimpan data, basis

data juga mengandung/ menyimpan definisi struktur.

Database Management System (Sistem Pengelola Basis Data)

DBMS merupakan sebuah perangkat lunak khusus yang akan menentukan bagaimana data

diorganisasikan, disimpan, diubah dan diambil.

DBMS juga menerapkan mekanisme pengamanan data, pemakaian data secara bersama,

keakuratan/ konsistensi data dsb. Perangkat lunak DBMS antara lain : dBAse III+, dBase IV,

FoxBase, Rbase, MS Acess dan Borland Paradox, Borland Interbase, MS SQL Server, CA Open

Ingres, Oracle, Informix, Sybase, dll.

Pengguna Basis Data

a. Database Manager

8

Data Base Management System (DBMS)

Basis DataFile1 File3

File2 File4

Page 9: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Suatu modul program yang menyediakan interface antara penyimpanan data dengan

suatu aplikasi program. Tugas dan tanggung jawab : interaksi dengan file manager,

integrasi, keamanan, kontrol, backup dan recovery.

b. Database Administrator (DBA).

Oarng yang mempunyai kekuasaan sebagai pusat pengontrolan terhadap seluruh system

baik data maupun program yang mengakses data. Funsi DBA :

- 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 integritas data.

c. Database User

Ada 4 macam pemakai basis data yang berbeda keperluan dan cara aksesnya :

- Programmer Aplikasi.

Pemakai yang berinteraksi dengan basis data melalui DML (data manipulation

language), yang disertakan dalam program yang ditulis dalam bahasa pemrograman

induk (C, Pascal, Basic, Cobol, dll)

- User Mahir (Casual User)

Pemakai yang berinteraksi dengan system tanpa menulis modul program, mereka

menyatakan query dengan bahasa query yang telah disediakan DBMS.

- User Umum (End User Naïve User)

Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu

program aplikasi permanen (executableprogram) yang telah ditulis/ disediakan

sebelumnya oleh programmer.

- User Khusus (Specialized User)

Pemakai khusus yang menuliskan aplikasi database tidak dalam kerangka data

processing yang tradisional, aplikasi tersebut diantaranya : CAD, Knowledge Base,

Expert System, system yang menyimpan data dalam bentuk data yang komplek

misalnya data grafik, audio,dll.

Aplikasi Basis Data

Aplikasi (perangkat lunak) ini bersifat opsional, artinya ada tidaknya tergantung dari

kebutuhan. Program ini ada yang sudah disediakan bersama dengan DBMS nya, ada juga

yang harus dibuat sendiri dengan menggunakan aplikasi lain yang khusus (development

tools). Artinya aplikasi ini ada yang terpisah atau menyatu dengan DBMS.

Aplikasi yang menyatu dengan DBMS implementasinya akan lebih cocok untuk pemakaian

sendiri (stand alone) yang bebannya lebih ringan, perangkat lunak ini adalah : dBase III+,

FoxBase dan MS-Access.

9

Page 10: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Aplikasi yang terpisah dengan DBMS implementasinya akan lebih cocok untuk pemakaian

berat oleh banyak pemakai (multi user), perangkat lunak ini diantaranya : MS SQL Server,

Oracle, CA OpenIngres, Sysbase, Informix, IBM DB2, dll Perangkat lunak ini memang

dirancang sejak awal berdiri sendiri dan terpisah dari aplikasi basis datanya dan banyak

sekali fasilitas (feature) yang ditangani oleh DBMS ini.

III Syarat Basis Data

Penyusunan suatu basis data digunakan untuk mengatasi maslah maslah pada penyusunan

data, yaitu :

Redudansi dan Inkonsistensi Data

Redudansi adalah penyimpanan dibeberapa tempat untuk datayang sama dan

mengakibatkan pemborosan ruang penyimpanan dan juga biaya pengaksesan akan lebih

tinggi. Akibat penyimpanan yang berulang-ulang dibeberapa file dapat mengakibatkan juga

inkonsistensi (tidak konsisten).

Kesulitan pengaksesan data.

Belum adanya fasilitas tertentu untuk memenuhi permintaan user tentang pengaksesan

data, penyelesaian dan solusi untuk hal ini adalah ke arah DBMS yang mampu mengakses

data secara langsung dengan bahasa yang familiar dan user friendly.

Isolasi Data untuk Standarisasi

Jika data tersebar dalam beberapa file dalam bentuk format yang tidak sama, misalnya

bilamana data dibuat dari format text file Pascal, Basic, dan juga dalam format C++ dan

lainnya, ini akan menyulitkan dalam menulis program aplikasi untuk mengambil dan

menyimpan data. Maka haruslah data dalam satu basis data dibuat satu format sehingga

mudah dalam pembuatan program aplikasinya.

Multiple User (Banyak pemakai)

Basis data dibangun karena nantinya data tersebut digunakan oleh banyak orang dalam

waktu yang berbeda, diakses oleh program yang sama tapi berbeda orang dan waktu,

karena data yang diolah tidaklah tergantung dan menyatu dalam program tapi terlepas

dalam satu kelompok data.

Masalah keamanan (security)

Tidak setiap pemakai sistem basis data diperbolehkan untuk mengakses semua data

(pengaturan hak akses), misalnya disesuaikan dengan jabatan dan kapasitas pemakai

tersebut di sebuah perusahaan. Keamanan ini dapat diatur lewat program yang dibuat oleh

pemrogram atau fasilitas keamanan dari sistem operasi.

Masalah Integritas (kesatuan)

Database berisi file-file yang saling berkaitan, secara teknis maka ada field kunci yang

mengkaitkan file-file tersebut.

Masalah Data Independence (kebebasan data)

1

Page 11: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Bahasa yang diciptakan dari DBMS apapun yang terjadi pada struktur file misalnya melihat

atau menambah data cukuplah dengan utility yang disediakan, ini berarti perintah-perintah

dalam paket DBMS bebas terhadap basis data. Apapun perubahan dalam basis data semua

perintah akan mengalami kestabilan tanpa perlu ada yang diubah. Berbeda dengan sistem

pemrosesan file dengan suatu bahasa tertentu yang sudah dibuat, kemudian terjadi

perubahan struktur file maka program tersebut haruslah diubah, dan ini tidak bebas

terhadap database yang ada.

IV. Abstraksi Data

Abstraksi data merupakan tingkatan/ level dalam bagaimana melihat data dalam sebuah basis

data . Ada 3 level abstraksi data :

Level Abstraksi Data

Keterangan :

Level Fisik (Physical Level)

Adalah level terendah dalam abstraksi data, menggambarkan bagaimana sesungguhnya

suatu data disimpan dalam kondisi sebenarnya. Data dilihat sebagai gabungan dari struktur

dan datanya sendiri, level ini berurusan dengan data sebagai teks, angka atau bahkan

melihatnya sebagai himpunan bit data.

Level Konseptual (Conceptual Level)

Adalah level yang menggambarkan data apa yang sebenarnya disimpan dalam basis data

dan hubungannya dengan data yang lain. Data disimpan/ direpresentasikan dalam beberapa

file/table yang saling berhubungan.

Level Pandang Pemakai (View Level)

Adalah level tertinggi dari abstraksi data, level ini sangat dekat dengan user yang hanya

menunjukan sebagian dari basis data. Level ini yang mengkonversikan data asli/fisik menjadi

data bermakna/lojik pada pemakai.

1

View 1 View 2 View 3

Level Konseptual

Level Fisik

Page 12: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

V. Bahasa Basis Data

DBMS merupakan perantara bagi pemakai dengan basis data dalam disk, cara

berkomunikasinya diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan

pembuat DBMS. Contoh-contoh bahasa basis data diantaranya adalah SQL, dBase, Ouel dan

sebagainya. Sebuah Bahasa Basis Data biasanya dapat dipilah kedalam 2 bentuk, yaitu :

a. DDL (Data Definition Language)

b. DML (Data Manipulation Language)

DDL

Struktur/ skema basis data yang menggambarkan/ mewakili desain basis data, dengan

bahasa ini dapat membuat table baru, membuat indeks, mengubah table, menentukan

struktur penyimpanan table dsb. Hasil kompilasi perintah DDL adalah kumpulan tabel yang

disimpan dalam file khusus yang disebut kamus data.

DML

Bahasa basis data yang berguna untuk melakukan manipulasi dan pengambilan data pada

suatu basis data, manipulasi dapat berupa penyisipan, penghapusan dan pengubahan data

di suatu basis data. DML ini bertujuan memudahkan pemakai untuk mengakses data.

VI. Struktur Sistem Basis Data

Naïve user Programmer Casual User DBA Aplikasi

1

Program aplikasi

System calls

Query Skema basis data

DML precompiler

Query processor

DDL compiler

Kode objek program aplikasi

Database Manager

Disk

File Manager

Data files Data dictionary

Page 13: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Struktur Sistem Basis Data Keseluruhan

BAB II

MODEL DATA Definisi

Model data adalah kumpulan perangkat konseptual untuk menggambarkan

data, hubungan data, makna data dan batasan data. Model data ini lebih

tepat jika disebut Model Data Lojik. Ada sejumlah cara dalam

merepresentasikan model data dalam perancangan basis data, yaitu

secara umum dapat dibagi dalam 2 (dua) kelompok :

1. Model Lojik Data Berbasis Objek (Object Based Logical Models), terdiri dari :

Model Keterhubungan Entitas (Entity Relationship Model) Model Berorientasi Objek (Object Oriented Model) Model Data Semantik (Semantic Data model) Model Data Fungsional (Functional Data Model)

2. Model Lojik Data Berbasis Record

1

Page 14: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

(Record Base Logical Models), terdiri dari : Model Relasional (Relational Model) Model Hirarkis (Hierarchical Model) Model Jaringan (Network Model)

Model Keterhubungan Entitas (Entity

Relationship Model)

ER-Model dapat didefinisikan suatu model untuk menjelaskan hubungan

antara data dalam basis data, didasarkan pada persepsi bahwa “real

world” terdiri dari objek-objek dasar yang memiliki relasi / hubungan antar

objek. Pada ER-Model, semesta data yang ada di dunia nyata

diterjemahkan/ ditransformasikan dengan memanfaatkan sejumlah

perangkat konseptual menjadi sebuah diagram data, yang umum disebut

“Entity Relationship Diagram (ER-D)”.

Komponen-komponen pembentuk ER-Model :

a. Entitas : individu yang mewakili sesuatu yang nyata dan dapat

dibedakan dari sesuatu yang lain.

b. Atribut : yang mendeskripsikan karakteristik (properti) dari entitas.

c. Relasi : menunjukan adanya hubungan diantara sejumlah entitas.

d. Kardinalitas : menunjukan jumlah maksimum entitas yang dapat berelasi

dengan entitas pada himpunan entitas yang lain, dapat berupa :

- Satu ke Satu (One to One)

- Satu ke Banyak (One to Many) / Banyak ke Satu (Many to One)

- Banyak ke Banyak (Many to Many)

Satu ke satu (One to One) : entitas pada himpunan entitas A

berhubungan dengan paling banyak dengan satu entitas pada himpunan

entitas B, dan sebaliknya.

A B

1

Entitas 1

Entitas 2

Entitas 3 Entitas 3

Entitas 2

Entitas 1

Page 15: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Satu ke Banyak (One to Many)/ Banyak ke Satu (Many to One) :

entitas pada himpunan entitas A dapat berhubungan dengan banyak

entitas pada himpunan entitas B, tetapi tidak sebaliknya untuk setiap

entitas pada himpunan entitas B berhubungan paling banyak dengan

satu entitas pada himpunan entitas B.

A B

Untuk derajat relasi Banyak ke Satu (Many to One) sebaliknya dari

pernyataan diatas atau kondisi gambar diatas.

Banyak ke Banyak (Many to Many) : entitas pada himpunan entitas

A dapat berhubungan dengan banyak entitas pada himpunan entitas B,

juga sebaliknya.

A B

Entity Relationship Diagram (ER-D)

1

Entitas 1

Entitas 2

Entitas 1

Entitas 2

Entitas 4

Entitas 3

Entitas 1

Entitas 2

Entitas 3

Entitas 4

Entitas 1

Entitas 2

Entitas 3

Entitas 4

Page 16: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Model Entity-Relationship berisi komponen-komponen himpunan entitas

dan himpunan relasi yang masing-masing dilengkapi dengan atribut-atribut

yang merepresentasikan seluruh fakta dari ‘dunia nyata’, dapat

digambarkan dengan lebih sistematis dengan menggunakan Entity

Relationship Diagram (ER-D). Notasi simbolik yang digunakan di dalam ER

Diagram adalah :

Persegi Panjang Menyatakan himpunan entitas

Lingkaran atau Elip Menyatakan atribut, atribut yang berfungsi sebagai key diberi garis bawah

Belah Ketupat Menyatakan himpunan relasi

Garis Sebagai penghubung antara himpunan relasi dengan himpunan entitas dan himpunan entitas dengan atributnya

Kardinalitas Relasi

1 dan 1 (satu ke satu)1 dan N (satu ke banyak)N dan N (banyak ke banyak)

Menyatakan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain.

Berikut contoh penggambaran relasi antar himpunan entitas lengkap

dengan kardinalitas relasi dan atribut-atributnya :

Relasi satu ke satu (One-to-One)

1

a

E

R

Page 17: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Pada relasi ini, setiap dosen paling banyak mengepalai satu jurusan dan

setiap jurusan pasti dikepalai oleh paling banyak satu orang dosen. Pada

himpunan entitas Dosen dan himpunan entitas Jurusan memiliki dua

atribut, yang salah satunya (memakai garis bawah) berfungsi sebagai

kunci (key). Sementara pada himpunan Relasi juga terdapat dua atribut,

yang keduanya sebetulnya berasal dari atribut key masing-masing

himpunan entitas, maka kedua atribut tersebut digolongkan sebagai

kunci tamu (foreign key), yang berfungsi sebagai penghubung antar

himpunan entitas.

Relasi satu ke banyak (One to Many)

Pada relasi ini, setiap dosen dapat dapat mengajar lebih dari satu mata

kuliah, sedangkan setiap matakuliah dipegang hanya paling banyak oleh

satu orang dosen. Pada himpunan relasi terdapat dua foreign key yang

berasal dari himpunan entitas, tetapi ada pula dua atribut tambahan

yang tidak berasal dari himpunan entitas. Hal ini memang

dimungkinkuan dan bahkan umum terjadi.

Relasi banyak ke banyak (Many to Many)

1

Page 18: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Pada relasi ini setiap mahasiswa dapat mempelajari lebih dari satu mata

kuliah, demikian juga sebaliknya setiap mata kuliah dapat dipelajari oleh

lebih dari satu orang mahasiswa.

Pembuatan Diagram E-RDiagram E-R selalu dibuat secara bertahap, langkah-langkah teknis yang

dapat dilakukan untuk menghasilkan Diagram E-R, adalah sebagai berikut :

Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan

terlibat.

Menentukan atribut-atribut key dari masing-masing himpunan entitas.

Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara

himpunan entitas-himpunan entitas yang ada beserta foreign key nya.

Menentukan derajat atau kardinalitas relasi untuk setiap himpunan

relasi.

Melengkapi himpunan entitas dan himpunan relasi dengan atribut

deskripsi (nonkey).

Diagram E-R dengan Kamus DataPendeklarasian atribut-atribut pada Diagram E-R dapat dipisahkan dan

dinyatakan dalam sebuah kamus data. Ini diperbolehkan jika sebuah

sistem yang ruang lingkupnya lebar dan kompleks. Kamus data berisi

atribut yang diapit kurung kurawal dan atribut yang berfungsi sebagai key

juga dibedakan dengan atribut yang bukan key, dengan menggaris bawahi

atribut tersebut. Berikut contoh Diagram E-R dengan Kamus Data :

1

Page 19: Modul Database

Panduan Kuliah Basis Data TI-STMIK DCI’09

Kamus Data :

Mahasiswa = { nim, nama_mhs, alamat_mhs, tgl_lahir }

Kuliah = { kode kuliah, nama_kuliah, sks, semester }

Dosen = { nama dosen, alamat_dosen }

Mempelajari = { nim, kode kuliah, indeks_nilai }

Mengajar = { kode kuliah, nama dosen, waktu, tempat }

Model Jaringan (Network Model)

Model jaringan akan terdiri atas sekumpulan record yang dihubungkan satu

sama lain melalui link (yang berupa pointer), sebuah record setara dengan

dengan sebuah entitas dalam ER Model. Sebuah record adalah sekumpulan

field yang masing-masing hanya berisi sebuah nilai data. Sebagai contoh

ada dua tipe record yaitu dosen dan mata kuliah yang dapat dideklarasikan

sebagai berikut :

1

Page 20: Modul Database

type dosen = recordkode_dos :

integer ;nama_dos :

string ;alamat_dos :

string; end

type kuliah = recordkode_kul :

string ;nama_kul :

string ;sks : integer;semester :

integer; end

Page 21: Modul Database
Page 22: Modul Database

Panduan Kuliah Basis Data

Dengan struktur record seperti itu, berikut diagram

struktur data :

Dosen Mengajar Kuliah

Diagram struktur data merupakan skema yang

menyatakan desain basis data jaringan, diagram tersebut

terdiri dari dua komponen yaitu kotak yang menunjukan

tipe record dan garis yang menunjukan link.

Berikut data dan link yang terjadi antara record dosen dan

record kuliah :

Cara diatas hanya layak diterapkan pada basis data

dengan link yang berderajat satu ke satu atau satu ke

banyak, dan cara diatas akan sulit jika diterapkan untuk

link yang berderajat banyak ke banyak. Model jaringan ini

secara umum sukar untuk diimplementasikan dan sangat

komplek. Kelebihna dari model jaringan ini adalah efisiensi

ruang penyimpanan akibat ketiadaan redudansi data dan

akses data yang cepat karena langsung memanfaatkan

pointer ke alamat fisik data. Saat ini dapat dikatakan

nama dos alamat dos kode kul nama_kul sks semester

Yogaswara, MT Jl. KaliurangIF-249 Perancangan Sistem 2 5

IF-976 Organisasi Komputer 3 3

Respati, MSc Jl. Edelwis MI-707 Basis Data 3 3

Rusi, Ir Jl. Mawar MI-774 Analisis Sistem 3 4

Page 23: Modul Database

Panduan Kuliah Basis Data

model jaringan sudah tidak dimanfaatkan lagi, kecuali

untuk aktivitas-aktivitas penelitian.

Model Hirarkis (Hierarchical Model)

Model hirarkis akan terdiri atas sekumpulan record yang

dihubungkan satu sama lain melalui link (yang berupa

pointer) yang membentuk suatu struktur hirarkis,

pengertian record dan link sama seperti pada model

jaringan. Berikut contoh diagram struktur pohon yang

mengilustrasikan hubungan record dosen dan mata

kuliah :

Dosen

Kuliah

Diagram struktur pohon merupakan skema yang digunakan

untuk basis data hirarkis. Diagram tersebut terdiri dari dua

komponen yaitu kotak yang menunjukan tipe record dan

garis yang menunjukan link. Berikut himpunan record-

record dosen dan kuliah diorganisasikan dalam sebuah

struktur pohon:

nama dos alamat dos

kode kul nama_kul sks semester

Kuliah

Yogaswara, MT Jalan Kliurng

Respati, MSc Jalan Edelwis

Rusi, Ir JalanMawar

IF-249 P S I 2 5 MI-707 DBMS 3 3 MI-774 ANSI 3 4

Page 24: Modul Database

Panduan Kuliah Basis Data

Dari sruktur pohon tersebut dapat disimpulkan bahwa tipe

record kuliah berada dibawah tipe record dosen secara

hirarkis. Maka disebutkan tipe record kuliah merupakan

child dan tipe record dosen merupakan parent dalam

struktur pohon tersebut. Penggunaan struktur pohon

sejauh ini tidak ada yang aneh, hanya jika digunakan untuk

relasi dengan derajat banyak ke banyak akan

menghasilkan banyak sekali redudansi data, kesulitan juga

terjadi pada operasi query dan manipulasi data tertentu.

Keunggulan dari model ini terletak pada keteraturan

struktur yang ditunjukan dan sangat cocok diterapkan

pada sebuah system/ persoalan yang keterkaitan antara

objek-objek di dalamnya mengikuti struktur hirarkis

tertentu. Karena keterbatasan pemakainya dan kelemahan

yang cukup mendasar, seiring dengan semakin

sempurnanya “model relasional”, model hirarkis ini juga

jarang untuk dimanfaatkan.

IF-976 ORKOM 3 3

Page 25: Modul Database

Panduan Kuliah Basis Data

BAB III

PERANCANGAN BASIS DATA Definisi

Perancangan basis data merupkan suatu hal yang sangat penting, kesulitan utama dalam merancang basis adalah bagaimana merancang basis data sehingga dapat memuaskan/ memenuhi keperluan saat ini dan masa mendatang. Dalam merancang basis data dapat dilakukan dengan dua buah teknik/ pendekatan yaitu :1. Menerapkan Normalisasi terhadap struktur table yang telah diketahui,

atau dengan

2. Langsung membuat model Entity-Relationship.

Perancangan basis data seringkali diasosiasikan dengan pembuatan model

Entity-Relationship (ER-Model), dimana kelompok-kelompok data dan

relasinya diwujudkan dalam bentuk diagram, hal itu tidak salah karena

model memang merupakan representasi nyata dari sebuah perancangan.

Normalisasi merupakan cara pendekatan lain dalam membangun desain

lojik basis data relasional yang tidak secara langsung berkaitan dengan

model data, tetapi dengan menerapkan sejumlah aturan dan kriteria

standar untuk menghasilkan struktur table yang yang normal. Namun

dalam pelaksanaannya desain lojik basis data relasional yang didasari baik

oleh prinsip normalisasi maupun model ER akan menghasilkan hasil yang

mirip.

Dalam pendekatan Normalisasi :

Perancang basis data bertitik tolak dari situasi yang nyata.

Perancang basis data telah memiliki item-item yang siap ditempatkan

dalam baris dan kolom pada table.

Demikian juga dengan sejumlah aturan tentang keterhubungan antara

item data.

Dalam pendekatan model Entity Relationship :

Langsung membuat model data lebih tepat dilakukan jika yang telah

diketahui baru prinsip-prinsip sistem secara keseluruhan.

Kedua pendekatan ini cukup sering terjadi dilakukan bersama-sama,

berganti-ganti. Dari fakta yang telah dimiliki dilakukan normalisasi, untuk

kepentingan evaluasi dan dokumentasi hasil normalisasi tersebut

diwujudkan dalm bentuk sebuah model data. Model data yang sudah jadi

Page 26: Modul Database

Panduan Kuliah Basis Data

tersebut bisa saja dimodifikasi dengan pertimbangan tertentu. Hasil

modifikasi itu kemudian diimplementasikan dalam bentuk sejumlah struktur

table dalam sebuah basis data. Struktur ini bisa diuji kembali dengan

menerapkan aturan-aturan normalisasi, sehingga akhirnya dapat diperoleh

sebuah struktur basis data yang benar-benar efektif dan efisien. Begitulah

kedua pendekatan ini dapat saling memperkuat satu sama lain.

Normalisasi

Normalisasi merupakan proses pengelompokan data elemen menjadi tabel-

tabel yang menunjukan entity dan relasinya atau lebih difokuskan pada

tinjauan komprehensif terhadap setiap kelompok dan (tabel) secara

individual.

Sebelum mengenal lebih jauh mengenai normalisasi ada beberapa konsep

yang harus diketahui terlebih dahulu :

Field/ Atribut kunci (Key)

Ketergantungan Fungsional (Functional Depedency)

Field/ Atribut kunci (Key)

Key adalah satu atau gabungan dari beberapa atribut yang dapat

membedakan semua baris data (row) dalam tabel secara unik. Terdapat

beberapa macam key yang dapat diterapkan pada suatu tabel, yaitu:

1. Super Key

Satu atau lebih atribut (kunmpulan atribut) yang dapat membedakan

setiap baris data dalam sebuah table secara unik. Bisa terjadi ada lebih

dari satu kumpulan atribut yang bersifat seperti itu dalam sebuah tabel,

misalnya:

Pada tabel nasabah terdapat atribut-atribut sebagai berikut :

no_rek, nama, no_ktp, tempat_lahir, tgl_lahir, alamat

Super Key : no_rek : karena unik tidak mungkin ganda

no_ktp : karena unik tidak mungkin ganda

nama : jika bisa menjamin tidak ada nilai yang sama utk atribut

ini.

2. Candidate Key

Merupakan kumpulan atribut minimal yang dapat membedakan setiap

baris data dalam sebuah tabel secara unik. Jika satu kunci kandidat

Page 27: Modul Database

Panduan Kuliah Basis Data

berisi lebih dari satu atribut, maka biasanya disebut sebagai composite

key (kunci campuran/ gabungan). Pada tabel nasabah misalnya :

Candidate Key :

no_rek : karena unik tidak mungkin ganda

nama : jika bisa menjamin tidak ada nilai yang sama utk atribut

ini.

nama + tgl_lahir : mungkin dapat dipakai sebagai kunci karena

kemungkinan sangat kecil seseorang punya nama sama yang lahir pada

hari yang sama. (composite key)

3. Primary Key

Pada sebuah tabel dimungkinkan adanya lebih dari satu candidate key,

salah satu dari candidate key (jika memang ada lebih dari satu) dapat

dijadikan sebagai primary key. Pemilihan primary key dari sejumlah

candidate key tersebut didasari oleh :

Dapat mengidentifikasi secara unik suatu kejadian dan dapat

mewakili setiap kejadian dari suatu entity (bersifat unik).

Lebih sering (lebih natural) untuk dijadikan sebagai acuan.

Lebih ringkas dan jaminan keunikan key tersebut lebih baik.

Tidak boleh “null” (tidak ada datanya) dan Harus bisa menjamin

setiap nilai primary key pada sebuah table, harus dimiliki pula

oleh table lainnya.

Dengan pertimbangan-pertimbangan tersebut, maka yang paling cocok

digunakan sebagai primary key pada tabel nasabah adalah “no_rek”.

4. Alternate Key

Adalah candidate key yang tidak menjadi/ tidak dipakai sebagai primary

key. Terkadang alternate key ini dipakai sebagai kunci pengurutan

dalam laporan misalnya.

5. Foreign Key

Foreign key (kunci tamu) adalah satu atribut yang melengkapi satu

relationship yang menunjukan ke induknya. Kunci tamu ditempatkan

pada entity anak dan sama dengan kunci utama (primary key) induk

relasinya. Contoh

Tabel Dosen :

sandi_dosen

nama no_ktp alamat gender

24001 Yogaswara, 117624 Jl. Kaliurang no.24 Laki-laki

Page 28: Modul Database

Panduan Kuliah Basis Data

MT24005 Respati, ST 110282 Jl. Pasanggrahan

no.6Laki-laki

24077 Rusi, Ir 110707 Jl. Edelwis no.7 Perempuan

sandi_dosen = primary key

Tabel Mata kuliah

kode_mtkul

mata_kuliah semester

sks sandi_dosen

IF-2424 Basis Data 4 3 24001IF-0707 Analisis Sistem Informasi 5 2 24077IF-0583 Organisasi Komputer 3 2 24005IF-7683 Arsitektur Komputer 4 3 24001kode_mtkul = primary keysandi_dosen = foreign key

Field sandi_dosen pada tabel dosen sebagai primary keysedangkan field

sandi_dosen pada tabel mata kuliah sebagai foreign key, karena tabel

mata kuliah ini berhubungan dengan tabel dosen sebgai induknya.

Ketergantungan Fungsional (Functional Depedency)

Definisi dari functional depedence adalah :

“ Diberikan sebuah relasi R, atribut Y dari R adalah bergantung

fungsi pada atribut X dari R jika dab hanya jika setiap nilai X

dalam R punya hubungan dengan tetap satu nilai Y dalam R

(dalam setiap satu waktu)”.

Pada tabel dosen berisi atribut :

sandi_dosen

nama no_ktp alamat gender

24001 Yogaswara, MT 117624 Jl. Kaliurang no.24 Laki-laki24005 Respati, ST 110282 Jl. Pasanggrahan

no.6Laki-laki

24077 Rusi, Ir 110707 Jl. Edelwis no.7 Perempuan

Isi dari atribut nama bergantung pada sandi_dosen. Jadi dapat dikatakan

bahwa atribut nama bergantung secara fungsi pada sandi_dosen dan

sandi_dosen menunjukan secara fungsi nama. Jika ingin mengetahui

sandi_dosen seorang dosen, maka dapat menentukan nama dosen

tersebut. Notasi untuk ketergantungan fungsi ini adalah :

sandi_dosen nama

atau

nama = f (sandi_dosen)

Page 29: Modul Database

Panduan Kuliah Basis Data

Bentuk Bentuk Normalisai

Pada proses normalisasi terdapat tahapan-tahapan (bentuk) normalisasi,

yaitu :

Bentuk Tidak Normal (Un normalized Form)

Merupakan bentuk kumpulan data yang akan direkam, tidak ada

keharusan mengikuti suatu format tertentu, dapat saja data tidak

lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai

kedatangannya.

Bentuk Normal Pertama (1NF/ First Normal Form)

Jika semua atribut mempunyai nilai data yang atomic (tidak dapat

dipecah lagi), tetapi masih terdapat beberapa atribut yang muncul

secara berulang.

Bentuk Normal Kedua (2NF/ Second Normal Form)

Relasi telah berada/ memenuhi bentuk normal pertama dan semua

atribut yang bukan kunci hanya bergantung secara fungsi pada kunci

utama/ primary key. Pada bentuk normal kedua haruslah sudah

ditentukan kunci kunci field.

Bentuk Normal Ketiga (3NF/Third Normal Form)

Relasi telah berada/ memenuhi bentuk normal kedua dan semua

atribut yang bukan kunci adalah non transitive dependency

(ketergantungan transitif = bila menjadi atribut biasa pada suatu

relasi, tetapi menjadi kunci pada relasi lainnya)

Boyce-Codd Normal Form (BCNF)

Relasi harus sudah dalam bentuk ketiga dan setiap atribut harus

bergantung fungsi pada atribut super key/ semua determinannya

merupakan candidate key.

Contoh Kasus :

Sebuah Relasi “ Rawat Pasien “

Bentuk Tidak Normal (Un normalized Form)

no_pasien

nama jenis_perawatan jenis_kamar Biaya_kamar

P0001 Bati Gawat Darurat KM001 Rp.100.000P0002 Totti Rawat Inap KM002 Rp.75.000P0003 Nesta Rawat Inap Sehari KM003 Rp.50.000P0004 Maldini Rawat Jalan KM004 Rp.25.000P0005 Cana Rawat InapP0006 Ihlam Rawat Inap SehariP0007 Nuno Gawat Darurat

Page 30: Modul Database

Panduan Kuliah Basis Data

P0008 Gomes Rawat Jalan Bentuk Normal Pertama (1NF/ First Normal Form)

no_pasien

nama jenis_perawatan jenis_kamar biaya_kamar

P0001 Bati Gawat Darurat KM001 Rp.100.000P0002 Totti Rawat Inap KM002 Rp.75.000P0003 Nesta Rawat Inap Sehari KM003 Rp.50.000P0004 Maldini Rawat Jalan KM004 Rp.25.000P0005 Cana Rawat Inap KM002 Rp.75.000P0006 Ihlam Rawat Inap Sehari KM003 Rp.50.000P0007 Nuno Gawat Darurat KM001 Rp.100.000P0008 Gomes Rawat Jalan KM004 Rp.25.000

Bentuk Normal Kedua (2NF/ Second Normal Form)

Menjadi : Relasi “Pasien” dan “Biaya_Rawat”

Relasi “Pasien”

no_pasien

nama jenis_perawatan

P0001 Bati Gawat DaruratP0002 Totti Rawat InapP0003 Nesta Rawat Inap SehariP0004 Maldini Rawat JalanP0005 Cana Rawat InapP0006 Ihlam Rawat Inap SehariP0007 Nuno Gawat DaruratP0008 Gomes Rawat Jalan

Relasi “Biaya_Rawat”

jenis_perawatan jenis_kamar biaya_kamarGawat Darurat KM001 Rp.100.000Rawat Inap KM002 Rp.75.000Rawat Inap Sehari KM003 Rp.50.000Rawat Jalan KM004 Rp.25.000

Bentuk Normal Ketiga (3NF/Third Normal Form)

Menjadi : Relasi “Pasien”, “Kamar_Rawat” dan “Biaya_Rawat”

Relasi “Pasien”

no_pasien

nama jenis_perawatan

P0001 Bati Gawat DaruratP0002 Totti Rawat InapP0003 Nesta Rawat Inap SehariP0004 Maldini Rawat JalanP0005 Cana Rawat InapP0006 Ihlam Rawat Inap Sehari

Page 31: Modul Database

Panduan Kuliah Basis Data

P0007 Nuno Gawat DaruratP0008 Gomes Rawat Jalan

Relasi “Kamar_Rawat”

jenis_perawatan jenis_kamarGawat Darurat KM001Rawat Inap KM002Rawat Inap Sehari KM003Rawat Jalan KM004

Relasi “Biaya_Rawat”

jenis_kamar biaya_kamarKM001 Rp.100.000KM002 Rp.75.000KM003 Rp.50.000KM004 Rp.25.000

Boyce-Codd Normal Form (BCNF)

Misalnya : Relasi “Seminar”

no_peserta

seminar Instruktur

240100 7783 Rusi, Ir240101 7783 Respati, ST240102 7776 Pita, Ir240101 7776 Yogaswara, MT

Relasi Antar Tabel

Keterangan :* = primary key** = foreign key

Pasienno_pasien *namajenis_perawatan **

Kamar_Rawatjenis_perawatan *jenis_kamar **

Biaya_Rawatjenis_kamar *biaya_kamar

Page 32: Modul Database

Panduan Kuliah Basis Data

240109 7776 Yogaswara, MTMenjadi : Relasi “Pengajar” dan “Peserta-Instruktur”

Relasi “Pengajar”

Seminar Instruktur7783 Rusi, Ir7783 Respati, ST7776 Pita, Ir7776 Yogaswara, MT

Relasi “Peserta-Instruktur”no_peser

taInstruktur

240100 Rusi, Ir240101 Respati, ST240102 Pita, Ir240101 Yogaswara, MT240109 Yogaswara, MT

Soal-Soal Latihan :

Latihan I :

Misalnya diketahui relasi “Karyawan” sebagai berikut :

Nip Nama

tgl_lahir alamat tgl_sk no_sk gol gaji tunj

status

1230 Rusi 1/2/70 Jl.Edelwis

1/3/84 3/sk/84 2A 50 25 Aktif

1230 Rusi 1/2/70 Jl.Edelwis

5/6/87 6/sk/87 2B 65 40 Aktif

1231 Resa 8/1/68 Jl.Elang 15/7/75 7/sk/75 3A 80 35 Aktif1231 Resa 8/1/68 Jl.Elang 7/2/78 2/sk/78 3B 100 65 Aktif1231 Resa 8/1/68 Jl.Elang 21/12/8

112/sk/81

3C 120 75 Aktif

1231 Resa 8/1/68 Jl.Elang 1/2/82 1/sk/82 3C 120 75 Keluar1232 Pita 4/3/72 Jl.Dahlia 5/4/89 4/sk/89 2A 50 35 Aktif

Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?

Latihan II :

Misalnya diketahui relasi “Pemesanan Tiket Kereta” sebagai berikut :

no

nama

almt Kd_krta

Nm_krta tujuan

tarif

tgl_psn

jam jml

Jml_byr

1 Resa

Jl.Edelwis

A Parahiyangan

Bdg 50 1/9/03

08:00

2 100

1 Resa

Jl.Edelwis

B Sawunggalih

Pwkt 100

2/9/03

10:00

2 200

2 Yoga

Jl.Xurg C SenjaExpres

Yogya

150

3/9/03

12:00

2 300

2 Yoga

Jl.Xurg D ArgoBromo

Sby 200

4/9/03

14:00

2 400

Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?

Latihan III :

Misalnya diketahui relasi “Pembelian Barang” sebagai berikut :

Page 33: Modul Database

Panduan Kuliah Basis Data

NoFac

kode

supp

namasupp

kodebrg

namabarang

tgl jatuhtemp

o

qty harga

jml total

799

S02 Swa R02 Plooter 2/2/04

9/3/04

10 150 1500 1500

998

G01 Ara A01 Hd Segeat

7/2/04

9/3/04

10 1350

13500

33500

998

G01 Ara A02 Hd Quntm

7/2/04

9/3/04

10 2000

20000

33500

Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?

BAB IV

IMPLEMENTASI BASIS DATA Definisi

Implementasi basis data merupkan upaya untuk membangun basis data fisik yang ditempatkan dalam memori sekunder (disk) dengan bantuan DBMS, tahap implementasi basis data diawali dengan melakukan transformasi dari model data yang telah selesai dibuat skema/ struktur basis data sesuai dengan DBMS yang dipilih. Secara umum sebuah Diagram ER akan direpresentasikan menjadi sebuah basis data fisik, sedangkan komponennya berupa himpunan entitas dan himpunan relasi akan ditransformasikan menjadi table-tabel (file-file data) dan atribut akan dinyatakan sebagai field-field dari tabel-tabel yang sesuai.Faktor-faktor yang mempengaruhi performansi sistem basis data : Kualitas dan bentuk perancangan basis data yaitu struktur basis data

dan cara akses (algoritma aplikasi)

Kualitas mesin

Sistem Operasi

DBMS (Data Base Management System)

Transformasi Model Data ke Basis Data Fisik

Aturan umum dalam pemetaan model data yang digambarkan dengan Diagram ER menjadi Basis Data Fisik adalah sebagai berikut :1. Setiap himpunan entitas akan diimplementasikan sebagai sebuah tabel

(file data).

Page 34: Modul Database

Panduan Kuliah Basis Data

Tabel Mahasiswa :nim nama_mhs alamat_mhs tgl_lahir

2. Relasi dengan derajat relasi 1 – 1 (satu ke satu)

Direperesentasikan dalam bentuk penambahan/ penyertaan atribut-atribut relasi ke table yang mewakili salah satu dari kedua himpunan entitas.

Tabel Dosen : Tabel Jurusan :kode_dosen

Nama Alamat kode_jurusan

nama_jurusan

kode_dosen

3. Relasi dengan derajat relasi 1 – N (satu ke banyak)

Juga direpresentasikan dalam bentuk pemberian/ pencantuman atribut key dari himpunan entitas pertama (yang berderajat 1) ke tabel yang mewakili himpunan entitas ke dua (yang berderajat N).Tabel Dosen :kode_dosen nama alamat

Page 35: Modul Database

Panduan Kuliah Basis Data

Tabel Kuliah :kode_kuli

ahnama_kuli

ahsks

semester

kode_dosen

tempat waktu

Dari hasil transformasi diatas jika kemudian ternyata bahwa atribut waktu pada table kuliah merupakan atribut bernilai banyak, maka table tersebut tidak memenuhi bentuk normal tahap pertama (1 NF). Maka table ini dapat didekomposisikan lagi menjadi sebagai berikut.Tabel Kuliah :Kode_kuli

ahnama_kuli

ahsks

semester

Kode_dosen

Tabel Jadwal :Kode_kuli

ahtempat waktu

4. Relasi dengan derajat relasi N – N (banyak ke banyak)

Direpresentasikan dalam bentuk tabel (file data) khusus yang memiliki field (foreign key) yang berasal dari key-key dari himpunan entitas yang menghubungkannya.Tabel Mahasiswa :nim Nama_mh

salamat_mhs tgl_lahir

Tabel Memepelajari/ Nilai (Tabel Khusus) :nim kode_kulia

hindeks_nilai

Tabel Kuliah :kode_kuliah nama_kuliah sks Semester

Page 36: Modul Database

Panduan Kuliah Basis Data

Model Data Lanjutan

Pada bab sebelumnya sudah dikenalkan komponen-komponen model data dasar dalam kegiatan perancangan serta langkah-langkah teknis dalam mentransformasikan fakta dilapangan ke sebuah model data, berikut dibahas sejumlah varian komponen-komponen perancangan basis data serta proses-proses lanjutannya.1. Himpunan Entitas Lemah (Weak Entity Sets)

Himpunan entitas lemah berisi entitas-entitas yang kemunculannya tergantung pada eksistensinya dalam sebuah relasi terhadap entitas lain (Strong Entity = sebaliknya dari entitas lemah), himpunan entitas lemah biasanya tidak memiliki key yang dapat menjamin keunikan entitas didalamnya.

Data orang tua dan hobbi dapat digolongkan sebagai entitas lemah (dalam ER-D dinyatakan dengan kotak garis ganda), karena kemunculannya sangat tergantung pada adanya relasi dengan entitas yang ada pada himpunan entitas mahasiswa. Atribut nama_ortu dan hobbi diberi garis bawah putus-putus untuk menunjukan atribut key yang tidak meyakinkan.Entitas lemah dapat ditransformasikan menjadi sebuah table dengan menyertakan key yang ada pada entitas kuat, sebagai berikut :

Tabel Mahasiswa :nim nama_mhs alamat_mhs tgl_lahir

Tabel Orang Tua : Tabel Hobbi :nim

nama_ortu

alamat_ortu nim hobbi

2. Spesialisasi dan Generalisasi

Page 37: Modul Database

Panduan Kuliah Basis Data

Himpunan entitas dimungkinkan adanya pengelompokan entitas-entitas yang menjadi anggotanya, dan terkadang ditemui atribut yang tidak sepenuhnya sama.Jika dimulai dari sebuah himpunan entitas lalu kemudian melakukan pengelompokan yang melahirkan entitas baru (top-down) dan adanya pembedaan atribut menyebabkan entitas-entitas tersebut tidak mungkin disatukan dalam sebuah himpunan entitas saja, maka ini adalah Spesialisasi. Adanya spesialisasi dan generalisasi diwujudkan dalam notasi relasi yang khusus, yang disebut ‘ISA’ (yang berasal dari ‘Is A’) sebagai berikut :

top-down

Sub Entitas hasil Spesialisasi diimplementasikan sebagai berikut : Tabel Dosen :

kode_dos nama_dos alamat_dos

Tabel Dosen Tetap : Tabel Dosen Tidak Tetap :kode_d

osnik

pangkat

tgl_masuk

kode_dos

nama_kantor

alamat_kantor

Jika yang dilakukan adalah sebaliknya, sebuah himpunan entitas yang sebenarnya dibagi menjadi dalam kelompok tertentu dan pengelompokan ini tidak dipertegas dengan adanya perbedaan atribut, malah kelompok-kelompok tersebut disatukan dalam sebuah himpunan dengan atribut yang sama. Jadi pendekatannya bersifat bottom-up mula-mula terpisah kemudian menjadi satu, proses yang demikian disebut Generalisasi. Sebagai berikut :

bottom-up

Page 38: Modul Database

Panduan Kuliah Basis Data

Spesialisasi dan generalisasi merupakan dua proses yang berlawanan, yang ditekankan dalam spesialisasi adalah perbedaan antar kelompok entitas, sedangkan dalam generalisasi yang ditekankan adalah persamaannya. Implementasi pada generalisasi berlawanan dengan spesialisasi yaitu akan menyusutkan jumlah himpunan entitas menjadi hanya sebuah tabel, pada table tersebut ditambahkan sebuah atribut yang nantinya akan diisi dengan kode khusus yang menyatakan perbedaan tersebut, sebagai berikut :Tabel Mahasiswa :nim nama_mhs alamat_mhs prog_studi

prog_studi = atribut tambahan untuk mengakomodasi perbedaan kelompok entitas.Adanya spesialisasi dalam perancangan basis data, umumnya akan terlihat secara eksplisit pada akhir Diagram-ER, sedangkan proses generalisasi seringkali ditiadakan. Peniadaan generalisasi ini direperesentasikan dengan adanya atribut baru pada himpunan entitas akhir.

3. Agregasi

Menggambar sebuah himpunan relasi yang secara langsung menghubungkan sebuah himpunan entitas dengan sebuah himpunan relasi dalam Diagram-ER/ sebuah relasi terbentuk tidak hanya dari himpunan entitas tapi juga mengandung unsur dari relasi lain. Sebenarnya kondisi ini tidak tepat bahkan ada yang dengan tegas tidak memperbolehkan, sebagai jalan tengah digunakan notasi khusus untuk menunjukan adanya agregasi semacam itu. Berikut contoh dari agregasi :

Page 39: Modul Database

Panduan Kuliah Basis Data

Pengimplementasian harus dilakukan setelah relasi prasyarat tersebut terimplementasikan, selanjutnya tinggal meninjau derajat relasi dari agregasinya. Relasi mengikuti merupakan bentuk agregasi relasi mempelajari dan entitas praktikum. Karena semua derajat relasi yang ada pada Diagram-ER diatas adalah N-N, maka baik relasi mempelajari maupun mengikuti masing-masing direpresentasikan dalam table khusus/terpisah, sebagai berikut :Tabel Mempelajari : Tabel Praktikum :nim

kode_kul indeks_nilai kode_pra nama_pra jumlah_pra

Tabel Mengikuti:nim kode_kul kode_pra nilai

Pengkodean Internal

Cara yang digunakan untuk menyatakan suatu data (atribut) dalam bentuk lain adalah untuk efisiensi ruang penyimpanan disebut dengan pengkodean (data coding). Dari pemakaiannya bias dibedakan adanya pengkodean :

Pengkodean eksternal (user define coding) : mewakili pengkodean

yang telah digunakan secara terbuka dan dikenal oleh orang awam

(ada pada fakta/ dunia nyata), contohnya : npm, kode_mtkul.

Pengkodean internal (system coding) : kondisi sebaliknya dari

pengkodean eksternal, contohnya : kode_dosen sebagai key

alternatif. Pengkodean internal tidak hanya diterapkan pada

Page 40: Modul Database

Panduan Kuliah Basis Data

pembuatan key alternatif, tapi juga dapat diterapkan pada atribut

data lain (non key) yang memang kita kelola.

Ada tiga bentuk pengkodean yang dapat dipilih :1. Sekuensial

Mengasosiasikan data dengan kode terurut, misalnya : (Sempurna, Baik, Cukup, Kurang, Buruk) dikodekan dengan : “A, B, C, D dan E“.

2. Mnemonic

Membentuk suatu singkatan dari data yang ingin dikodekan, misalnya : jenis kelamin (Laki-Laki dan Perempuan) dikodekan dengan “L dan P “.

3. Blok

Pengkodean dinyatakan dalam format tertentu, misalnya No.Induk Mahasiswa dengan format XXYYYYXX = dua digit terakhir angka tahun masukYYYY = nomor urut mahasiswaFormat ini harus dibentuk dengan pemilihan domain atribut yang lebih luas, tetapi harus dipertimbangkan juga dari sisi efisiensi ruang penyimpanan.

DBMS dan Struktur Tabel

Pembuatan berbagai tabel basis data adalah sebagai pekerjaan utama dalam tahap implementasi juga penetuan struktur dari tabel-tabel tersebut. Penentuan pilihan tipe data dan featur-featur tambahan untuk struktur table sangat bergantung pada DBMS yang dipilih. Namun dalam penentuan struktur table khususnya penetapan tipe data dan featur tambahan untuk setiap field akan sering dihadapkan pada pilihan-pilihan seperti :1. Data Angka

a. Numerik : nilai angka dari tipe data ini menunjukan suatu jumlah

misalnya : field sks, field semester, dll. Data numerik berupa :

Bilangan bulat (integer) terdiri dari Byte (1 byte), Small Integer (2

byte) dan Long Integer (4 byte).

Bilangan Nyata (real) terdiri dari Single (4 byte) bisa menampung

hingga 7 digit pecahan dan Double (8 byte) hingga 15 digit

pecahan.

Dalam penetuan tipe data numerik ukuran data disesuaikan dengan kebutuhan data masukan.b. Alfanumerik : nilai angka dari tipe data ini tidak menunjukan

suatu jumlah misalnya : field npm berisi data angka tapi tidak

menunjukan suatu jumlah (bertipe teks).

2. Data Teks (Character)

Data teks ini dapat berupa abjad/ huruf, angka, karakter khusus atau

gabungan dari ketiganya. Tipe ini tidak dapat melakukan operasi

matematika.berupa :

Page 41: Modul Database

Panduan Kuliah Basis Data

a. Ukuran tetap (fixed character) : data teks yang ukurannya pasti

dan pendek, misalnya untuk field npm ukuran datanya selalu tetap.

b. Ukuran dinamis (variable character) : data teks yang ukuran

panjang pendeknya sangat bervariasi, misalnya untuk field

nama_mhs dan alamat.

3. Data Uang

Jika DBMS yang digunakan menyediakan tipe data khusus untuk menyimpan data uang, misalnya bertipe money atau currency (8 byte). Tipe data ini cocok untuk diterapkan dan akan sangat membantu terutama dalam mengatur tampilan datanya, yang dinyatakan dengan pemisahan ribuan/jutaan/milyaran dan pemakaian tanda mata uang.

4. Date/Tanggal

Berupa gabungan angka dengan format tanggal tertentu (8 byte).

Formatnya terdapat dua pilihan, diantaranya:

day/month/year atau Hari/Bulan/Tahun

month/day/year atau Bulan/Hari/Tahun5. Feature tambahan pada DBMS

Sejumlah DBMS menyediakan feature tambahan seperti : mandatory (harus diisi atau boleh kosong), default, variant (dalam VB) bila data yang akan dimasukan belum tahu tipenya maka secara otomatis mendeteksi, variant ada dua jenis yaitu untuk number (16 byte) dan character (22 byte).

Menentukan tipe data bagi setiap field, pertimbangan pertama DBMS yang dipilih, kecukupan domain, efisiensi ruang penyimpanan, kecepatan pengolahan data dan harus dapat menjamin bahwa tipe data yang dipilih pada setiap field akan dapat mengakomodasi semua nilai yang akan diisikan ke dalam field tersebut.Penetuan struktur dari tabel-tabel basis data dapat disajikan sebagai berikut :Misalnya :Nama Tabel : MahasiswaPrimary Key : npm

No

Nama Field

Tipe Ukuran

Kunci

Keterangan

1 npm C 8 * nomor pokok mahasiswa2 nama_mhs C 30 nama setiap mahasiswa3 alamat_mhs C 50 alamat setiap mahasiswa4 tgl_lahir D 8 tanggal lahir setiap mahasiswa5 photo G - photo mahasiswa

Nama Tabel : MatakuliahPrimary Key : kd_mtkul

No

Nama Field

Tipe Ukuran

Kunci

Keterangan

1 kd_mtkul C 5 * kode matakuliah2 nama_mtkul C 30 nama matakuliah3 sks N 1 jumlah bobot satuan kredit

semester

Page 42: Modul Database

Panduan Kuliah Basis Data

4 semester N 1 semester diselenggarakan perkuliahan

Nama Tabel : NilaiForeign Key : npm + kd_mtkul

No

Nama Field

Tipe Ukuran

Kunci

Keterangan

1 npm C 8 ** nomor pokok mahasiswa2 kd_mtkul C 5 ** kode matakuliah3 Indeks_nilai C 1 indeks nilai matakuliah

mahasiswa

Keterangan :C : CharacterN : NumericD : DateG : Graphic (untuk menyimpan data berupa gambar atau grafik /feature DBMS)

Page 43: Modul Database

Panduan Kuliah Basis Data

BAB V

ALJABAR RELASIONAL Definisi

Basis data dipahami oleh pengguna sebagai kumpulan tabel-tabel yang

saling ber relasi, konsep untuk akses pada basis data model relasi dapat

diterapkan berdasarkan matematika aljabar relasional. Operasi pada

aljabar relasional operator-operatornya antara lain adalah sebagai berikut :

Selection ( = sigma)

Projection ( = phi)

Joint ( = cross)

Union ( = gabungan)

Intersection ( = irisan)

Set different ( = minus)

Dan lain-lain

Operator Aljabar Relasional

a. Selection ( = sigma) adalah memilih tupel (baris) dalam relasi yang

memenuhi predikat yang diberikan.

Contoh : Relasi Nasabah

Nama alamat no_rekRespati Jl. RE Marthadinata 111.111Yoga Jl. Merdeka 222.222Rusi Jl. Pataruman 444.444Swaraspati Jl. Tentara Pelajar 555.555Misal : nama = “Yoga” (Nasabah)

Hasil : Yoga Jl.Merdeka 111.111

b. Projection ( = phi) adalah operasi semacam selection tetapi mengambil

atau memilih beberapa atribut (kolom) dalam relasi.

Misal : no_rek (Nasabah)

Hasil : no_rek111.111222.222444.444555.555

Misal : nama,no_rek (Nasabah)

Hasil : nama no_rekRespati 111.111Yoga 222.222

Page 44: Modul Database

Panduan Kuliah Basis Data

Rusi 444.444Swaraspati 555.555

c. Joint ( = cross) adalah tupel t adalah hasil operasi joint antara r dan s

jika t memenuhi beberapa tupel di r dalam skema r dan beberapa tupel

dalam skema s.

Contoh:

Relasi Dosen (s) Relasi Ambil_Kuliah (r)

nama_dosen

kode_mtkul

nama_mhs

kode_mtkul

indeks_nilai

Yogaswara TI-3000 Bati TI-5000 BRespati TI-4000 Totti TI-7000 ARusi TI-5000 Nesta TI-3000 CPitaloka TI-6000 Kana TI-4000 ASwaraspati

TI-7000 Maldini TI-7000 D

Misal : Dosen Ambil_Kuliah

Hasil : (t)

nama_dosen

nama_mhs

kode_mtkul

indeks_nilai

Rusi Bati TI-5000 BSwaraspati Totti TI-7000 AYogaswara Nesta TI-3000 CRespati Kana TI-4000 ASwaraspati Maldini TI-7000 DDalam query terhadap basis data operator-operator aljabar relasional

dapat diekspresikan dengan gabungan, misalnya :

nama_mhs(nama_dosen = “Swaraspati”(Dosen Ambil_Kuliah))

d. Union ( = gabungan) adalah menghasilkan semua tupel yang berada

di kedua relasi. Contoh :

Relasi Mtkul_diinginkan Relasi Mtkul_tersedia

kode_mtkul

nama_mhs

nama_mhs

kode_mtkul

TI-3000 Bati Bati TI-3000TI-4000 Bati Totti TI-5000TI-5000 Totti Nesta TI-4000TI-3000 Totti Nesta TI-6000TI-4000 Nesta

Misal : Mtkul_diinginkan Mtkul_tersedia

Hasil :

Page 45: Modul Database

Panduan Kuliah Basis Data

nama_mhs

kode_mtkul

Bati TI-3000Bati TI-4000Totti TI-5000Totti TI-3000Nesta TI-4000Nesta TI-6000

e. Intersection ( = irisan) adalah menghasilkan relasi dengan tupel-tupel

yang berada pada kedua relasi.

Misal : Mtkul_diinginkan Mtkul_tersedia

Hasil :

nama_mhs

kode_mtkul

Bati TI-3000Totti TI-5000Nesta TI-4000

f. Set different ( = minus) adalah menghasilkan relasi dengan tupel-tupel

yang berada pada relasi kesatu, tetapi tidak ada pada relasi yang

kedua.

Misal : Mtkul_diinginkan Mtkul_tersedia

Hasil :

nama_mhs

kode_mtkul

Bati TI-4000Totti TI-3000

Misal : Mtkul_ tersedia Mtkul_ diinginkan

Hasil :

nama_mhs

kode_mtkul

Nesta TI-6000

Page 46: Modul Database

Panduan Kuliah Basis Data

BAB VI

STRUCTURED QUERY

LANGUAGE (SQL) Definisi

Page 47: Modul Database

Panduan Kuliah Basis Data

SQL adalah sebuah bahasa yang dijadikan bahasa standar untuk bahasa

basis data. Sebagai sebuah bahasa standar, sejalan dengan perkembangan

teknologi basis data dan teknologi komputer pada umumnya, SQL sendiri

mengalami beberapa perubahan (penyempurnaan). SQL mula-mula dibuat

pada tahun 1970 dengan “Sequel”. Standarisasi yang pertama dibuat pada

tahun 1986 oleh ANSI (American National Standards Institute) dan ISO

(International Standards Organization), yang disebut sebagai SQL-86. SQL-

86 ini diperbaharui pada tahun 1986 menjadi SQL-89. Standar terakhir yang

dibuat dan digunakan hingga saat ini adalah SQL-92 yang dikeluarkan pada

tahun 1992. Bahasa basis data terdiri dari atas :

DDL (Data Definition Language)

DML (Data Manipulation Language)

Struktur Dasar

Sebuah ekspresi SQL dasar terdiri dari atas 3 klausa :

Select : Bersesuaian dengan operasi proyeksi pada aljabar relasi/

memilih

atribut (field) yang diinginkan.

From : Relasi yang dipilih atau terkena operasi proyeksi/ table

atau

gabungan table.

Where : Bersesuaian dengan pilihan predikat pada aljabar relasi/

yang

sifatnya opsional/ sebuah keadaan.

Sintaks dari ekspresi SQL dasar :

Select F1,F2…Fn

Form T1,T2…Tn

Where P

Keterangan : A : daftar atribut (field)

T : daftar relasi (tabel)

P : merupakan predikat query

Tabel nasabah Tabel simpanan

no_rek nama alamat cabang no_rek jumlah10924 Angie Jl. Mawar CBCihide

ung10606 700.000

10606 Ari Jl. Dahlia CBIndihiang

12476 1.500.000

12476 Armand Jl.Ros CBCilem 10924 2.000.00

Page 48: Modul Database

Panduan Kuliah Basis Data

bang 010678 Alanis Jl.Melati CBTawan

g10678 500.000

18987 Aras Jl.Awan CBEmpang

10924 700.000

CBMerdeka

12476 1.000.000

Klausa Select dan Form

Misal : Select nama

From nasabah

Hasil : namaAngieAriArmandAlanisAras

Misal : Select nama, no_rek

From simpanan

Hasil : Menampilkan seluruh isi atribut nama dan no_rek dari tabel

simpanan

Misal : Select no_rek as Rekening

From simpanan

Hasil : klausa as untuk mengganti tampilan header no_rek menjadi

Rekening tanpa menggangu prosesnya.

Misal : Select *

From nasabah

Hasil : notasi * menampilkan semua atribut yang ada pada tabel

nasabah

Klausa Where

Klausa ini boleh tidak digunakan, klausa untuk predikat ini dapat

menerapkan operator relasi (<, >, <=, >=, =, <>) dan operator logika

(and, or dan not). Untuk nilai predikat yang bertipe string harus diapit

dengan tanda kutip tunggal (‘ ’).

Misal : Select nama Hasil : Angie

Page 49: Modul Database

Panduan Kuliah Basis Data

From nasabah

Whereno_rek = ‘10924’

Misal : Select *

From nasabah

Whereno_rek =

‘10924’

Hasil : 10924Angie Jl.Mawar

Misal : Select no_rek,cabang

From simpanan

Wherejumlah <=

700.000

Hasil : 10606CBCihideung10678CBTawang10924CBEmpang

Page 50: Modul Database

Misal : Select no_rek

From simpanan

Wherejumlah between 450.000 and 800.000

Hasil : Kalusa between kriteria yang berbentuk range nilai tertentu.

106061067810924

Misal : Jika dalam query tabel yang dilibatkan lebih dari satu tabel maka

table-tabel

tersebut harus memiliki relasi.

Select nasabah.nama, nasabah.alamat, simpanan.cabang

From nasabah, simpanan

Wherenasabah.no_rek = simpanan.no_rek

Hasil : Menampilkan nama, alamat dan cabang dari kedua table dimana

no_rek

nasabah pada table nasabah sama dengan no_rek pada table

simpanan.

Latihan :

1. Buat contoh lain untuk penggunaan klausa select, from dan where

seperti pada contoh diatas.

2. Pada kedua tabel nasabah dan simpanan, cari isi record data no_rek

10924 dengan jumlah simpanannya lebih dari 800.000

3. Pada kedua tabel nasabah dan simpanan, cari semua nasabah dan

cabangnya yang mempunyai jumlah simpanan sebesar 700.000

4. Pada kedua tabel nasabah dan simpanan, cari semua nama, alamat

dan cabangnya yang mempunyai simpanan dibawah 1000.000

5. Pada kedua tabel nasabah dan simpanan, cari no_rek, nama dan

alamat nasabah yang memiliki simpanan dicabang CBIndihiang dan

CBMerdeka.

6. Pada kedua tabel nasabah dan simpanan, cari semua nasabah yang

memiliki simpanan di cabang CBTawang.

Karakter Khusus

Khusus untuk atribut yang bertipe string, dapat dilakukan pencarian

dengan pola tertentu, memanfaatkan karakter :

% (percent) : berarti cocok untuk semua substring.

6

Page 51: Modul Database

_ (underscore) : berarti cocok untuk semua karakter pada posisi yang

sesuai.

Ditambah klausa like

Misal : Select *

From nasabah

Where nama like ‘A%’

Hasil : menampilkan record-record nasabah yang namanya diawali

dengan huruf A

Misal : Select *

From nasabah

Where nama like ‘_a%’

Hasil : menampilkan nasabah yang huruf/karakter kedua dan namanya

adalah a.

Pengurutan Hasil Query

Dengan SQL hasil ditampilkan dengan urutan sesuai dengan struktur

penyimpanan, jika ingin menampilkan dengan urutan tertentu dengan

menambahkan klausa order by.

Misal : Select *

From nasabah

Order by nama

Hasil : menampilkan nama nasabah dari abjad terkecil hingga terbesar

(ascending).

Misal : Select *

From nasabah

Order by tgl_lahir desc

Hasil : menampilkan nasabah termuda hingga tertua (descending).

Anomali Basis Data

SQL juga dilengkapi dengan sejumlah perintah untuk melakukan manipulasi

data seperti penambahan record baru, pengubahan nilai atribut dan

penghapusan record.

Ada tiga Anomali :

Insert Anomali

Delete Anomali

Update Anomali

a. Insert Anomali

Sintaks SQL : Insert Into NamaTabel(field1, field2,…)

6

Page 52: Modul Database

values (ekspresi1, ekspresi2,…)

Misal : insert into nasabah (no_rek, nama, alamat)

values (‘12085’,’Roma’,’Jl.Edelwis’)

Hasil : Fields no_rek, nama, alamat pada table nasabah akan di isi

dengan nilai

12085, Roma, Jl.Edelwis.

b. Delete Anomali

Sintaks SQL : delete from NamaTabel

where Kondisi

Misal : delete from nasabah

where no_rek = ‘12085’

Hasil : Record dengan no_rek 12085 akan dihapus

Misal : delete from nasabah

Hasil : Akan menghapus semua record dari table nasabah

c. Update Anomali

Sintaks SQL : update NamaTabel

set Ekspresi

where Kondisi

Misal : update nasabah

set alamat = ‘Jl.Edelwis’

where no_rek = ‘10606’

Hasil : Record alamat untuk no_rek 10606 akan di update dengan

Jl.Edelwis

Misal : update simpanan

set jumlah = jumlah + 500.000

where no_rek = ‘12476’

Hasil : Field jumlah pada table simpanan akan ditambah 500.000 untuk

no_rek

= 12476

Misal : update nasabah

set nama = ‘ Prof. ’ + nama

where no_rek = ‘12476’

Hasil : Nama dengan no_rek 12476 akan ditambahakan gelar Prof.

Misal : update simpanan

set jumlah = null

6

Page 53: Modul Database

Hasil : Pengosongan untuk semua field jumlah. (Jika tanpa klausa where

maka

berlaku untuk semua record).

Pendefinisian Objek Basis Data

Data Definitif Language (DDL) berkaitan dengan perintah - perintah untuk

pendefinisian objek-objek basis data.

Misalnya pembuatan tabel, sintaks SQL :

create table t (A1 D1, A2 D2,…)

t = nama table yang akan dibuat

A = nama-nama atribut yang akan terdapat dalam table t.

D = domain nilai masing-masing atribut yang ditentukan berdasarkan tipe

data.

Misal : create table mahasiswa (npm char(6), nama_mhs varchar(30),

alamat_mhs

Varchar(60), tgl_lahir date)

Misalnya penghapusan tabel, sintaks SQL :

drop table t

Misal : drop table mahasiswa

Misalnya pembuatan table mahasiswa sekaligus pendefinisian Indeks

Primer berdasarkan npm :

Misal : create table mahasiswa (npm char(6), nama_mhs varchar(30),

alamat_mhs

Varchar(60), tgl_lahir date, primary key (npm))

Sintaks SQL untuk perubahan struktur tabel dapat berupa penambahan

atribut atau pengurangan/ penghapusan atribut tertentu.

Penambahan atribut ke tabel t :

alter table t add A D

t = nama table

A = nama atribut

D = tipe data untuk atribut A

Penghapusan atribut dari tabel t :

alter table t drop A

Penambahan atribut baru bernama ip di tabel mahasiswa :

alter table mahasiswa add ip numeric (5, 2)

Jika atribut ip dihapus dari tabel mahasiswa :

alter table mahasiswa drop ip

6

Page 54: Modul Database

Fungsi Agregasi

Untuk menampilkan data-data agregasi seperti banyak record, total nilai

suatu atribut, rata-rata nilai suatu atribut, nilai atribut terbesar ataupun

terkecil dapat diperoleh dengan fungsi-fungsi berikut :

count : menghitung jumlah baris suatu field.

sum : menjumlahkan data-data numerik pada suatu field.

avg : menghitung nilai rata-rata suatu atribut numerik.

max : mengambil nilai maksimum

min : mangambil nilai minimum

Contoh : Tabel karyawan

nama umur golongan gajiArti 27 A Rp. 500.000Bunda 32 A Rp. 750.000Citra 29 B Rp. 474.000Diva 24 A Rp. 575.000Elsa 25 B Rp. 800.000

Misal : select count (*)

from karyawan

Hasil : 5

Misal : select count (*)

from karyawan

where golongan = ‘A’

Hasil : 3

Misal : select sum (gaji)

from karyawan

Hasil : 3.100.000

Misal : select avg (umur)

from karyawan

Hasil : 27,4

Misal : select max (gaji)

from karyawan

Hasil : 800.000

Misal : select min (umur)

from karyawan

Hasil : 24

Misal : select max (gaji)

6

Page 55: Modul Database

from karyawan

where golongan = ‘A’

Hasil : 750.000

Misal : select min (gaji)

from karyawan

where golongan = ‘B’ Hasil :

475.000

6