72
MODUL PRAKTIKUM BASISDATA TEKNIK INFORMATIKA . <3 ff \ ‘kul. YA I 1 1*‘ Nama ............................................... .. NRP ............................................... .. LABORATORIUM SISTEM INFORMASI JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO MADURA 2012 NIODUL I PERANCANGAN BASIS DATA Materi Konsep Data, Informasi, Basis Data Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa,

Modul Basis Data 2

Embed Size (px)

DESCRIPTION

Modul Basis Data 2

Citation preview

Page 1: Modul Basis Data 2

MODUL

PRAKTIKUM BASISDATA

TEKNIK INFORMATIKA

. <3

ff

\

‘kul. YA I 1 1*‘

Nama ............................................... ..

NRP ............................................... ..

LABORATORIUM SISTEM INFORMASI

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS TRUNOJOYO MADURA

2012

NIODUL I

PERANCANGAN BASIS DATA

Materi

Konsep Data, Informasi, Basis Data

Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa,

konsep, keadaan dan sebagainya yang dapat dicatat dan mempunyai arti secara implisit.

Data dapat dinyatakan dalam bentuk angka, karakter atau simbol. sehingga bila data

dikurnpulkan dan saling berhubungan maka dikenal dengan istilah basis data

Page 2: Modul Basis Data 2

(database).

Basis data merupakan kumpulan informasi bermanfaat yang diorganisasikan ke

dalam aturan yang khusus. Informasi ini adalah data yang telah diorganisasikan ke

dalam bentuk yang sesuai dengan kebutuhan seseorangi

Hirarki Data

Data diorganisasikan kedalam bentuk elemen data (field), rekaman (record), dan

berkas (file). Definisi dari ketiganya adalah scbagai berikut:

Elemen data adalah satuan data terkecil yang tidak dapat dipecah lagi menjadi unit lain

yang bennakna. Misalnya data siswa terdiri dari NIS, Nama, Alamat, Telepon atau Jenis

Kelarnin.

Rekaman merupakan gabungan sejumlah elernen data yang saling terkait. Istilah lain

dari rekaman adalah baris atau tupel. Berkas adalah himpunan seluruh rekaman yang

bertipe sama.

Bevkas mint

__---“ 1/ "~~-\_ “-~-»_

I Rekamantrecrvdi Fk-k.=1man(rec0v'(!) Rekamanlrecivtit , I

Z \

//’ \\ "“-——~~__,_

I C|l?|l\\1|lDflH\\lv|~I¢/\ I I El1*Im,-v\D-Ila!tmrftl) EhmwnDu!-itfmltlr I

Gambar L1 Hlffllkl dflla

l 3 Sistem Basis Data

Gabungan antara basis data dan perangkat lunak SMBD (Sistem Manajemen

Basis Data) termasuk di dalamnya program aplikasi yang dibuat dan bckerja dalam satu

sistem disebut dengan Sistem Basis Data.

Page 3: Modul Basis Data 2

Data Base Management System (DBMS)

DBMS dapat diartikan sebagai program komputer yang digunakan untuk

memasukkan. mengubah, menghapus, memodifikasi dan memperoleh data/informasi

dengan praktis dan efisien.

Model Data

Model data dapat dikelompokkan berdasarkan konsep pembuatan deskripsi

struktur basis data. yaitu:

a) Model data konsepsual (high level) menyajikan konsep tentang bagaiman user

memandang atau memperlakukan data. Dalam model ini dikenalkan tiga konsep

penyajian data yaitu:

~ Entity (entitas) merupakan penyajian obyek, kcjadian atau konsep dunia nyata

yang keberadaannya secara eksplisit didefinisikan dan disimpan dalam basis

data, contohnya Mahasiswa, Matakuliah, Dosen, Nilai dan lain sebagainya.

0 Atribute (atribut) adalah keterangan-keterangan yang menjelaskan

karakteristik dari suatu entitas seperti NIM. Nama, Fakultas, Jurusan untuk

entitas Mahasiswa.

0 Relationship (hubungan) merupakan hubungan atau interaksi antara satu

entitas dengan yang lainnya, misalnya entitas pelanggan berhubungan dengan

entitas barang yang dibelinya.

b ) Model data fisikal (low level) merupakan konsep bagaimana deskripsi detail data

disimpan ks dalam komputer dengan menyajikan informasi tentang format

rekaman, urutan rekaman, dan jalur pengaksesan data yang dapat mcmbuat

pemcarian rekaman data lebih efisien.

Page 4: Modul Basis Data 2

c) Model data implementasi (representational) merupakan konsep deskripsi data

disimpan dalam komputer dengan menyembunyikan sebagian detail deskripsi data

sehingga para user mendapat gambaran global bagaimana data disimpan dalam

komputcr. Model ini merupakan konsep model data yang digunakan oleh model

hirarki, jaringan dan relasional.

> Simbol yang digunakan :

: Menunjukan Object Dasar

: Menunjukan Relasi

: Menunjukan Atribut dari Object Dasar

L : Menujukan Adanya Relasi

Contoh kasus ER-model

N0 tabungan Customer Buku

Tabungan

Atribute lain No tabungan Atribute lain

Metodologi Perancangan Basis Data

Perancangan merupakan suatu hal yang sangat penting dalam pembuatan basis

data. Permasalahan yang dihadapi pada waktu perancangan yaitu bagaimana basis data

yang akan dibangun ini clapat memenuhi kebutuhan saat ini dan masa yang akan datang.

Untuk itu diperlukan perancangan basis data baik secara fisik maupun sccara logik.

Metodologi perancangan basis data adalah kumpulan teknik terorganisasi untuk

pembuatan rancangan basis data. Teknik terorganisasi ini merupakan kumpulan tahap-

Page 5: Modul Basis Data 2

tahapan yang memiliki aturan-aturan terurut. Teknik yang digunakan pada perancangan

basis data dibagi menjadi dua, yaitu:

a ) Perancangan basis data tingkat logik.

b ) Perancangan basis data tingkat fisik.

Perancangan basis data secara logik dimulai dengan penciptaan model konseptual

dari organisasi dan selumhnya tak bergantung rincian implementasi seperti perangkat

lunak DBMS, program aplikasi, bahasa pemrograman, platform pcrangkat keras. dan

pertimbangan fisik lainnya. Model konsep ini kemudian dipetakan menjadi model data

secara logik yang telah dipengaruhi model data target basis data seperti model

relasional. Dalam perancangan basis data secara logik, kita dapat melakukannya dengan

cara :

a ) Menerapkan Normalisasi terhadap stmktur tabel yang telah diketahui.

b ) Langsung membuat model Entity-Relationship (ER).

Model data secara logik mempakan sumber informasi perancangan fisik. Model

ini menyediakan perancang suatu kendaraan untuk pertimbangan dalam merancang

basis data yang efisien.

Perancangan basis data secara fisik adalah proses memproduksi deskripsi

implementasi basis data pada penyimpanan sekunder, mendeskripsikan stru.ktur-struktur

penyimpanan dan metode-metode pengaksesan dalam meningkatkan efektifitas

pengaksesan. Pada tahap ini, perancangan fisik telah ditujukan untuk sistem DBMS

tertentu. Perancangan basis data tingkat fisik sudah dikaitkan dengan platform dan

pcrangkat lunak sistem manajemen basis data dimana basis data diimplementasikan.

Langkah-langkah Metodologi Perancangan Basis Data

Page 6: Modul Basis Data 2

Berikut adalah perancangan basis data relasional :

~/ Dimulai dari perancangan basis data logik untuk basis data relasional pada

tahap l sampai dengan tahap 3.

/ Perancangan dan implementasi basis data fisik untuk basis data relasional pada

tahap 4 sampai dengan tahap 7.

a) Tahap l

Membangun rancangan data konseptual lokal berdasarkan pandangan pemakai.

Yaitu mengidentifikasikan himpunan entitas - himpunan entitas.

Mengidentifikasikan keterhubungan-keterhubungan (relationship),

mengidentifikasikan dan asosiasikan atribut-atribut pada entitas atau

keterhubungan. menentukan domain atribut, menentukan atribut-atribut candidate

key dan primary key, melakukan spesialisasi/generalisasi, menggambarkan

diagram ER, melakukan review model data konsep dengan pemakai.

Tahap 2

Membangun dan validasi model data logik lokal. Yaitu memetakan model data

konsep ke model data logik, melakukan turunan relasi-relasi dari model data

logik, validasi model menggunakan normalisasi, validasi model berdasarkan

transaksi — transaksi pemakai, menggambarkan ER nya, mendefinisikan

kontsrain-konstrain (batasan-batasan) integritas, melakukan review mode] data

logik dengan pemakai.

Tahap 3

Membangun dan validasi model data logik global. Yaitu menggabungkan model

Page 7: Modul Basis Data 2

data logik lokal menjadi model global, validasi model data logik global, periksa

untuk pertumbuhan masa datang, menggambarkan diagram ER akhir, melakukan

review model logik global dengan pemakai.

Tahap 4

Menerjemahkan model data logik global untuk DBMS target. Yaitu merancang

relasi-relasi basis untuk DBMS target, merancang aturan-aturan integritas untuk

DBMS target.

Tahap 5

Merancang dan implementasi representasi fisik. Yaitu menganalisa transaksi-

transaksi, memilih organisasi file, memilih indeks-indeks sekunder,

mempertimbangkan penambahan redudansi yang terkendali, estimasikan mang

disk yang diperlukan.

Tahap 6

Merancang dan mengimplementasikan mekanisme pengamanan. Yaitu merancang

view-view pemakai, merancang aturan-aturan pengaksesan.

Tahap 7

Memonitor dan menyesuaikan sistem yang sedang operasi.

2 Tugas Pendahuluan

1. Jelaskan yang dimaksud dcngan basis data dan manfaatnya !

2. Sebutkan dan jelaskan komponen-koinponen penyusun DBMS Y

3. Sebutkan model data yang anda ketahui dan jelaskan dengan contoh I

4. Apakah yang dimaksud dengan perancangan basis data relasional ? berikan

Page 8: Modul Basis Data 2

contohnya !

Praktikum

3.1 Latihan

Unruk latihan modul 1, silahkan buat perancangan ER-model basis data dari 3

kasus di bawah ini :

Kasus 1 : Sistem Basis Data Inventory Laboratorium

Laboratorium Sistem Informasi merupakan salah satu laboratorium yang

dimiliki Fakultas Teknik Universitas Trunojoyo. Seiring dengan berkembangnya Lab,

dimana barang yang ada di Lab semakin banyak, maka diperlukan sebuah sistem basis

data yang menyimpan infonnasi barang yang ada cli dalam Lab.

Barang yang ada di kategorikan dalam beberapa kategori. Tiap barang dicatat

informasi nama barang, tgl pembelian, asal barang(dana), supplier, masa garansi, stok

(jika ada), keterangan lain sehubungan dengan spesifikasi barang, dsb. Barang bisa

tersusun dari barang yang lain, misal scbuah komputer tersusun dari CPU, Monitor,

Keyboard, dst. Senientara CPU tersusun dari Hard-disk, D-Drive, dst.

DB mencatat barang masuk dan barang keluar. Setiap barang masuk dan

barang keluar, tercatat juga Laboran yg menangani barang masuk/keluar terscbut.

Barang masuk kc Lab bisa melalui Z cara, yaitu dibeli dengan dana sendiri / anggaran

dari Pusat, atau diberi secara cuma-cuma dari institusi lain. Barang keluar dari Lab

bisa melalui 2 cara, yaitu barang rusak shg dibuang, atau barang hilang.

DB mencatat jenis kemsakan dan servis/perbaikan yang dijalani uleh sebuah

barang termasuk spare parts yang diganti. Juga dicatat Laboran yang menangani kasus

kerusakan itu. Untuk lebih detil tentang prosedur/transaksi yang teijadi di Lab bisa

melakukan survey scndiri.

Kasus 2 2 Sistem DB Penjualan Barang

Page 9: Modul Basis Data 2

Pak Firinan adalah pengusaha retil yang cukup terkenal di daerahnya. Beliau

ingin mendirikan ORAMan®, sebuah mini Man di daerah Bangkalan. Karena itu

beliau ingin mengembangkan sistem Basis Data yang akan menangani proses

penjualan barang di ORAMart®.

DB mencatat barang, dimana barang memiliki kategori. Barang memiliki

atribut nama barang, harga jual, stock, dsb. DB mencatat barang masuk, harga beli

barang pada saat itu, jumlah stock yg masuk. dsb. Transaksi pembelian barang oleh

customer mencatat barang yang dibeli, quantity. total harga, dsb.

Untuk meningkatkan pemasaran, untuk periode Waktu tertentu, akan diberikan

diskon untuk barang-barang terlentu. Untuk lebih detil tentang prosedur/transaksi yang

berkaitan dengan pembelian dan penjual barang bisa melakukan sun/ey sendiri.

Kasus 3 : Sistem DB Plane Ticketing (reservasi)

Pak Budi adalah pengusaha ekspedisi, yg ingin melakukan diversifikasi usaha

ke bidang transportasi udara. Untuk itu didirikan ArchiAirlines® yang menangani

perjalanan luar kota dengan menggunakan pesawat. Untuk itu dibuat DB yang

mencatat pemesanan tiket pelanggan.

DB mencatat semua jenis pesawat, kapasitas penumpang, kelas penumpang,

jalur yang dilalui, jadwal penerbangan, dsb. Setiap Passenger yang melakukan

pemesanan, dicatat nama, alamat, tujuan, tgl dan jam berangkat, jumlah pesanan, total

biaya, pembayaran, dsb. Untuk lebih detil tentang prosedur/transaksi yang berkaitan

dengan pemesanan tiket bisa melakukan survey sendiri.

4 Pertanyaan dan Tugas

Page 10: Modul Basis Data 2

1. Dari praktikum modul 1, bagaimana tahapan dalam merancang basis data,

jelaskan langkah-langkahnya !

2. Buat kelompok tugas, dengan memilih salah satu dari topik pembuatan aplikasi

basis data berikut :

I Kepariwisataan 1 Peqaarkiran I Kependudukan

0 Akademik 0 Percetakan 0 Kepegawaian

0 Perpustakaan I Koperasi 0 Perhotelan

0 Rumah Sakit I Asuransi 0 Banking

0 Retail Q Pegadaian

3 Dari topik yang dipilih, setiap mahasiswa membuat ER-model sederhana !

MODUL II

KARDINALITAS RELASI

Materi

Model Relasi Entitas (Entity-Relationship Model)

Merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data

yang berdasarkan suatu persepsi bahwa di dunia nyata terdiri dari object-object dasar

yang mcmiliki hubungan atau relasi dari object-object tersebut. Model Relasi-Entitas

atau (Entity Relationship Model) pada hakekatnya perwujudan dari model relasional

dalam bentuk diagram, yaitu E-R Diagram. Domain data disebut juga sebagai himpunan

entitas, diwakili oleh diagram kotak. Field-data atau atribut diwakili oleh diagram

lingkaran atau elltps. Hubungan atau relasi antar domain diwakili oleh jajaran-genjang.

Entity dalam E-R diagram dibedakan menjadi 2 yaitu :

Page 11: Modul Basis Data 2

' Strong entity (entitas kuat) I entitas yang rnandiri, yang keberadaannya tidak

bergantung pada keberadaan entitas yang lainnya. Instansiasi entitas kuat

selalu mcmiliki karakteristik yang unik disebut identifier (sebuah atribut

tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk

membedakannya dari entitas kuat yang lain).

- Weak entity (entitas lemah) : entitas yang keberadaannya sangat bergantung

pada keberadaan entitas yang lainnya. Entitas lemah tidak memiliki arti apa-apa

dan tidak dikehendaki kehadirannya dalam diagram ER tanpa kehadiran

entitas di mana mereka bergantung.

Entitas di mana entitas lemah bergantung dinamakan identifying owner.

Entitaslemah tidak memiliki identifier sendiri. Secara umum, dalam diagram ER

entitas lemah memiliki atribut yang berperan sebagai partial identzfer (identifier

yang berfungsi secara sebagian).

Mengapa jika terdapat set entitas yang sama muncul beberapa kali dalam

satu set ER-Diagram ini harus dihindari?

I Untuk menghindari redundancy

I Menghemat penyimpanan (storage) data

I Mengurangi efektifitas dan kecepatan akses

I Untuk menghindari terj adinya asinkronisasi data pada saat di-update

Participation Constraint (Batasan Partisipasi) ini menentukan apakah keberadaan

sebuah entitas tergantung pada hubungannya kc entitas lain melalui jenis relasinya.

Participation Constraint ada 2 yaitu 1

Page 12: Modul Basis Data 2

I Total constraint adalah constraint yang mana data dalam entitas yang

memiliki constraint tersebut terhubung secara penuh ke dalam entitas dari

relasinya.

0 Constraint partial adalah constraint yang mana data dalam entitas yang

merniliki constraint tersebut terhubung ke dalam entitas dari relasinya.

1.2 Derajat Relationship

Derajat Relationship menjelaskan jumlah entity yang terlibat dalam suatu

relationship.

/ Unary Degree (Derajat satu) —) hanya satu entity yang terlibat

/ Binary Degree (Derajat dua) -) menghubungkan dua entity

~/ Ternary Degree (Derajat tiga) 9 menghubungkan ti ga entity

bckc,-I; I Dqwarmm-n

1.3 Curdinality Ratio Constraint

Cardinality Ratio Constraint menjelaskan batasan jumlah relasi suatu entity

dengan entity lainnya.

/ Jenis rasio kardinalitas :

1. Oneto one(l:l)

2. One to many/many to one (1: M / M:l)

3. Many to many (M : N)

\1 \

\

"

Page 13: Modul Basis Data 2

1.4 Atribut

Atribut adalah property deskriptif yang dimiliki oleh setiap himpunan cntitas.

Jenis-jenis alribut :

1

2

3

4

5

1.5 Key

. Atribut key 9 digunakan untuk mengidentifikasi suatu entity secara unik

. Atribut tunggal 9 memiliki nilai tunggal

. Atribut multivalue 9 inemiliki sekelompok nilai untuk setiap instant entity

. Atribut composite 9 dapat didckomposisi menjadi beberapa atribut Iain

. Atribiit derivative 9 dihasilkan dari atribut yang lain

Key adalah sejinnlah atribut yang mengidentifikasi record/baris dalam sebuah

relation secara unique. Beberapa jenis key :

1

2

3

4

5

6

. Super Key 9 satu atribut atau kurnpulan atribut yang secara unik

mengidentifikasi sebuah record di dalam relasi atau himpunan dari satu atau

lebih entitas yang dapat digunakan untuk mengidentifikasi secara unik

Page 14: Modul Basis Data 2

sebuah entitas dalam entitas set.

. Candidate Key 9 atribut-atribut yang menjadi detenninan yang dapat

dijadikan identitas record pada sebuah relation bisa terdapat satu atau lebih

candidate key

. Primary key 9 candidate key yang inenjadi identitas record karena dapat

mengidentifikasi record secara ullik

. Altenate key 9 candidate key yang tidak dijadikan primary key

. Composite key 9 key yang terdiri dari 2 atribut atau lebih. Atribut-atribut

tersebut bila berdiri scndiri tidak menjadi identitas record, tetapi bila

dirangkaikan menjadi satu kesaluan akan dapat rnengidentifikasi secara unik.

. Foreign key 9 non key atribut pada sebuah relation yang juga menjadi key

(primary) atribut di relation lainnya. Foreign key biasanya digunakan

sebagai penghubun g antara record-record dan kedua relation tersebut.

Contoh :

Keterangan :

S#

Super Key : S#, SName, Kode

SName Kodc‘ Kode 11¢: |

S1 Risks: 1002 Candidate Key 1 S#, SName

\ 1002 [zeta

Primary Key : S#

"S3 sm; 116031

S2 Sandi 1001 1001 26-19

Alternative Key : SName

Foreign Key 1 Kode

Page 15: Modul Basis Data 2

1003 26-11

1.6 Contoh Pembuatan ER-Diagram

Permasalahan:

Membuat desain ER-Diagram yang sederhana untuk suatu sistem inforrnasi akademis.

> Tahap 1: Penentuan Entitas

vmahasiswa: menyirnpan semua informasi pribadi mengenai semua mahasiswa

vdosen: menyimpan semua informasi pribadi mengenai semua dosen

¢mata_kuliah: menyimpan seinua informasi mengenai semua mata kuliah yang

ditawarkan

vruangz menyimpan semua informasi inengenai ruang kelas yang digunakan

> Tahap 2: Penentuan Atribut

mahasiswa:

nim: nomor induk mahasiswa (integer) PK

nama_mhs: nama lengkap mahasiswa (string)

alamat_mhs: alamat lengkap mahasiswa (string)

dosen:

nip: nomor induk pegawai (integer) PK

nama_d0sen: nama lengkap dosen (string)

alamat_d0sen: alamat lengkap dosen (string)

mata_kuliah:

k0de_mk: kode untuk mata kuliah (integer) PK

nama_mk: nama lengkap mata kuliah (string)

Page 16: Modul Basis Data 2

deskripsi_mk: deskripsi singkat rnengenai mata kuliah (string)

ruang:

k0de_ruang: kode untuk ruang kelas (string) PK

10kasi_ruang: deskripsi singkat mengenai lokasi ruang kelas (string)

kapasitas_ruang: banyaknya mahasiswa yang dapat ditampung (integer)

> Tahap 3: Penentuan Relationships

\ \ Mahasiswa \ dosen \ mata_kuliah \ Ruang |

Mahasiswa - i nzl \ mzn \ -

- 1111 - i

_ 111

-

Hubungan:

vruang digunakan untuk mata_kuliah: vmahasiswa mengambil mata_kuliah:

~Tabel utama: ruang

¢Tabel kedua: mata_kuliah

~Relati0nship: One-to-one (1:1)

¢Attribute pcnghubung: k0de_ruang (PK

k0de_ruang di mata_kuliah)

vTabel utama: mahasiswa, mata_kuliah

~Tabel kedua: mhs_ambil_mk

~Relati011ship: Many-to-many (mzn)

0Attribute penghubung: nim, k0de_mk

Page 17: Modul Basis Data 2

(FK nim, k0de_mk di mhs_ambil_mk)

vdosen mengajar mata_kuliah: vdosen membimbing mahasiswa:

oTabel utama: dosen

¢Tab6l kedua: mata_kuliah

~Relati0nship: One-to-many (1 zn)

¢Attribute penghubung: nip (FK nip di

mata_kuliah)

cTabel utama: dosen

~Tabelkedua: mahasiswa

IRelati0nship: One-to-many (lzn)

IAttribute penghubung: nip (FK nip di

mahasiswa)

> Tahap 4: Pembuatan ERD

@

M N

M 1

mcmbimbmg

1

Q

1 mengaj at

M .

dlgunakan

untuk

1

ruang

Page 18: Modul Basis Data 2

Tugas Pendahuluan

l. Jelaskan yang dimaksud dengan ER diagram I

2. Sebutkan dan jelaskan macam-macam ER diagram!

3. Apa yang dimaksud dengan Cardinaliry Ratio Constraint!

4. Buatlah contoh sederhana Cardinality Ratio Constraint!

Praktikum

Buatlah ER-Diagram dari kasus berikut:

Suatu perusahaan software diminta membuatkan basis data yang akan menangani

data-data inventaris sebuah toko kecii. Karena tokonya kecil, maka ada beberapa

gudang yang khusus untuk menyimpari stock produk. Data-data yang akan ditanganinya

adalah: data produk yang ditawarkan toko, data pemasok produk, data transaksi

pembelian produk dari pemasok (nota pembelian), dan data gadang tempat

penyimpanan produk. Satu produk yang sama bisa disimpan di beberapa gudang yang

berbeda, dan tentu saja tiap gudang menyimpan berbagai macam produk. Di database

hams ada data rnengenai sisa stock yang ada di masing-masing gudang untuk semua

produk.

>Tahap l: Penentuan Entitas

vprodukz menyimpan semua inforinasi mengenai semua produk yang ditawarkan

vpemasok: menyimpan semua informasi mengenai semua pemasok

In0ta_pembelian: menyiinpan semua informasi mengenai semua transaksi pernbelian

produk dari pemasok

Igudangi rnenyirnpan semua infonnasi mengenai gudang untuk penyimpanan produk

Page 19: Modul Basis Data 2

>Tahap 2: Penentuan Atribut

produkz

k0de_pr0duk: kode unik untuk tiap macam produk (string) PK

nalTl2l_]f)l'0dLli<I nama lengkap untuk produk (string)

hargagiualt hargajual produk di toko (integer)

pemasokz

i(OdC_p€I‘[18.S()i(Z kode unik untuk tiap pemasok (string) PK

namaiaemasokz nama lengkap untuk pemasok (string)

alamatjeinasokz aiamat lengkap untuk pemasok (string)

n0ta_pembelian:

no_nota: kode untuk mata kuliah (integer) PK

tanggal: tanggal transaksi dilakukan (date)

gudang:

kodejudang: kode untuk ruang kelas (string) PK

alamat_gudang: alamat lengkap untuk gudang (string)

>Tahap 3: Penentuan Relationships

‘ | Produk ‘ pemasok ‘ nota_pembelian ‘ Gudang

\

produk - - ‘ mzn ‘ mzn

7 _ ‘ ‘ _

nota - -

Hubungan:

Page 20: Modul Basis Data 2

Iproduk disimpan di gudang: vpemasok tercatat di nota_pembelian:

vTabel utama: produk, gudang vTabel utama: pemasok

~Tabelkedua:st0k_pr0duk lTabelkedua: Il0f2lJ)€lI1b€li2lIl

~Relationship: Many-to-many (rnzn) ~Relati0nship: One-to-many (1:n)

~Attribute penghubung: k0de_pr0duk, ‘Attribute penghubung:

k0de_gudang (FK kode_pr0duk, kode_pemasok (FK

k0de_gudang di st0k_pr0duk) k0de_pemas0kdi nota_pembelian)

Iproduk tercatat (ii notajembelianz

ITabel utama: produk, n0ta_pembelian

ITabel kedua: rincian_n0ta_pembelian

‘Relationship: Many-to-many (rnzn)

¢Attribute penghubung: k0de_pr0duk,

n0_n0ta (PK kode_pr0duk, no_n0ta

di rincian_n0ta_pembelian)

4. Pertanyaan dan Tugas

Buatlah ER Diagram dari topic yang sudah dipilih saat modul 1 lengkap dengan relasi

dan kardinalitasnya !

MODUL III

NORMALISASI

Materi

Normalisasi

Beberapa pengertian mengenai normalisasi 2

Page 21: Modul Basis Data 2

> Istilah Normalisasi berasal dari E. F.C0dd, salah seorang perintis teknolugi basis

data. selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur

tabel 9 relasi dalain basis data (dengan tujuan utnuk mengurangi kemubaziran

data) , normalisasi terkadang hanya diipakai sebagai perangkat verifikasi terhadap

tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya E-R). Normalisasi

memberikan panduan yang sangat membantu bagi pengembang untuk mencegah

penciptaan struktur tabel yang kurang fleksibel atau mengurangi keflekxibelan.

> Kroenke mendefinisikan normalisasi sebagai proses untuk mengubah suatu relasi

yang memiliki masalah teitentu kc dalam dua buah relasi atau lebih yang tida

meniiliki inasalah tersebut. Masalah yang diinaksud oleh kroenke ini sering

disebut dengan istilah anomali.

> Nonnalisasi merupakan sebuah teknik dalam logical desain sebuah basis data /

database, teknik pengelompokkan atribut dari suatu relasi sehingga membentuk

struktur relasi yang baik (tanpa redudansi).

> Normalisasi adalah suatu proses memperbaiki / membangun dengan model data

relasional, dan sccara umum lebih tepat dikoneksikan dfingan model data logika.

Proses nonnalisasi adalah proses pengelompokan data elemen mcnjadi tabel-tabel

yang menunjukkan entity dan relasinya. Pada proses nonnalisasi dilakukan pengujian

pada beberapa kondisi apakah ada kesulitan pada saat rnenambah/menyisipkan,

menghapus. mengubah dan mengakses pada suatu basis data. Bila terdapat kesulitan

pada pengujian tersebut maka perlu dipecahkan relasi pada beberapa tabel lagi atau

dengan kata lain perancangan basis data belum optimal.

Tujuan dari normalisasi itu sendiri adalah untuk menghilangkan kerangkapan

data, mengurangi kompleksitas, dan untuk mempermudah pemodifikasian data.

Page 22: Modul Basis Data 2

I 2 Tahapan Normalisasi

Bentuk Tidak Normal

Menghilangkan perulangan group

BenlukvN0rmal Pertama (INF)

Menghilangkan ketergantungan sebagian

Bentukllormal Kedua (ZNF)

Menghilangkan ketergantungan transitif

Bentukllonnal Ketiga (3NF)

Y Menghilangkan anomali-anomali hasil dari ketergantungan fungsional

Bentuk Normal Boyce-Codd (BCNF)

Menghilangkan Ketergantungan Multivalue

BenrukvNormal Keempat (4-NF)

Menghilangkan anomali-anomali yang tersisa

BentukvN0nnal Kelima

Bentuk Normal Kesatu (1 NF / First Normal Form)

Bentuk Bentuk Normal Kesatu mempunyai ciri yaitu setiap data dibentuk dalam file

flat, data dibentuk dalam satu record demi satu record dan nilai dari field benlpa

“atomic value”. Tidak ada set atribut yang berulang ulang atau atribut bernilai ganda

(multi value). Tiap field hanya sam pengertian, bukan merupakan kumpulan data yang

mempunyai ani mendua. Hanya satu ani saja dan juga bukanlah pecahan kata kata

sehingga aninya lain.

Atom adalah zat terkecil yang masih memiliki sifat induknya, bila dipecah lagi maka

ia tidak memiliki sifat induknya.

Page 23: Modul Basis Data 2

Contoh :

Kelas (Kode Kelas, Nama Kelas, Pengajar)

Ini merupakan bentuk 1NF karena tidak ada yang berganda dan tiap atribut satu

pengetian yang tunggal

Contoh Data

Kode Kelas Nama Kelas Peng_a]ar

I111 Bas|s Data Muhamad Ah

2222 Rise! Pemasaran Ahmad Yunam

3333 Pemrograman Suryo Pratolo

Mahasiswa (NPM, Nama, Dosen Wali, Semesterl, Semester2 Semester3)

Mahasiswa yang punya NPM, Nama, Dosen Wali mengikuti 3 mata kuliah. Di sini ada

perulangan semester sebanyak 3 kali. Bentuk seperti ini bukanlah 1NF.

Contoh Data

NPM Nama Dosen Wall Sam 1 Sam 2 Sam 3

1000 Sally Fatnmah may S 1254 3100

1001 lnm_0ag!|_sfa Ruslan 123-1 2109

1602 Putn Pumcia Denmas 2100 3122

Bentuk 1 NF darl bentuk di alas adalah sbb :

NPM Nama Dosen Wall Semester

1000 Sally Fatimah Dedy S 1234

1000 Sally Fatimah Dedy S 3100

1001 lnul Daratlsta Ruslan 1234

Page 24: Modul Basis Data 2

1001 lnul Daratlsta Ruslan 2109

1002 Pulri Patricia Denrnas 2100

1002 Pulri Patricia Denmas 3122

Bentuk Normal Kedua (ZNF)

Bentuk Normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria

bentuk Normal Kesatu. Atribut bukan kunci haruslah bergantung secara fungsi pada

kunci utama, sehingga untuk membentuk Normal Kedua haruslah sudah ditentukan

kunci-kunci field. Kunci field harus unik clan dapat mewakili atribut lain yang menjacli

anggotanya. Dari contoh relasi mahasiswa pada bentuk Normal Kesatu, terlihat bahwa

kunci utama adalah NPM. Nama Mahasiswa dan Dosen Wall berganlung pada NPM,

Tetapi Kode Semester bukanlah fungsi dari Mahasiswa maka file siswa dipecah

menjadi 2 relasi yaitu :

Relasi Mahasiswa

NPM Nama Dosen Wall

1000 Sally Fatimah Dedy S

1001 lnul Daratista Ruslan

1002 Putri Patricia Denmas

Dan Relasi Ambil Kuliah

Kode Ku 1

00 12

A A

D.

D‘

O0 31

O1 12

Page 25: Modul Basis Data 2

01 21

AAAA

GOOD

DO

01 21

01 3122

Bentuk Normal Ketiga (3NF)

Untuk menjadi bentuk Nonnal Ketiga maka relasi haruslah dalam bentuk Nonnal

Kedua dan semua atribut bukan primer tidak punya hubungan yang transitif. Artinya

setiap atribut bukan kunci hams bergantung hanya pada kunci primer secara

menyeluruh. Contoh pada bentuk Normal kedua di atas termasuk juga bentuk Normal

Ketiga karena seluruh atribut yang ada di situ bergantung penuh pada kunci

primemya.

Boyce-Codd Normal Form (BNCF)

Boyce-Codd Normal Form mempunyai paksaan yang lebih kuat dari bentuk Normal

ketiga. Untuk menjadi BNCF, relasi harus dalam bentuk Normal Kesatu dan setiap

atribul dipaksa bergantung pada fungsi pada atribut super key.

Pada contoh dibawah ini terdapat relasi Seminar, Kunci Primer adalah NPM +

Seminar. Siswa boleh mengambil satu atau dua seminar. Setiap seminar membutuhkan

2 pembimbing dan setiap siswa dibimbing oleh salah sam diantara 2 pembimbing

seminar tersebut. Setiap pembimbing hanya boleh mengambil saru seminar saja. pada

contoh ini NPM dan Seminar menunjukkan seorang Pembimbing.

Page 26: Modul Basis Data 2

Pem b|m |n

S100 Snska

01 S 1 O0 Smta

02 S101 Sukma

01 S101 Sukma

Relasi Seminar

00

1003 s101 Akbar

Bentuk Relasi Seminar adalah bentuk Noimal Ketiga, tetapi tidak BCNF karena Kode

Seminar masih bergantung fungsi pada Pembimbing, jika setiap Pembimbing dapat

mengajar hanya satu seminar. Seminar bergantung pada saw atribut bukan super key

seperti yang disayaratakan oleh BCNF. Maka relasi Seminar hams dipecah menjadi

dua yaitu :

Relasi Pembimbing Relasi Seminar - Pembimbing

Pembimbing I Seminar NPM I Pembimbing

S|ska 1 5100 1000 | Siska

Smla S100 1001 I Sinta

Sukma 1002 I Sukma

Akbar S101 1001 I Sukma

1003 Akbar

‘L’

S’

Page 27: Modul Basis Data 2

Penerapan Bentuk Normalisasi

Proses perancangan basis data dapat dimulai dari dokumen dasar yang dipakai

dalam sistem sesungguhnya. Kadang-kadang basis data dibentuk dari sistem nyata yang

rnempunyai bentuk masih belum menggambarkan entitas-entitas secara baik. Sebagai

contoh basis data yang dibangun dari daftar faktur pembelian sebagai berikut :

PT. Denmas Makmux FAKTUR PEMBELIAN

J1. Sekeloa Utara No 6Z~‘152 C

Bandung

Kode Pennasok : A101 Tanggal : 07103-2004

Nama Pemasok : Akbar Comp Nome: : 111

Kode I .\'a|na Baraug Jumlah I Harga I Total

A1 I DDRAM128 I 200.000 I 2.000.000

AZ I GPorce»FX 5100 I 5001000 I 5.000.000

A3 I .-‘\thloul500+ I 700.000 I 7000.000

Total fakrurl I 14,000,000

655

Iaruh Tempo Paktur : O7I'0-‘W200-1

Langkah Pertama

Bentuklah menjadi tabel Un-Normalized, dengan mencantumkan semua field data yang

ada.

_\'o. Kode I_\':un:\ IKode .\':nn:| Tgl Jatuh Qty IH:\rga Jumlah Total

fink I Sum) Sump! Barauv B:n‘:\n Tempo

111 I A101 I Akbar DR128 I DRAM 07‘O3w‘04 07‘-’04~‘04 10 200 Z000 2000

Co

122 I B111 I Bona GI-'52 I GI-‘one 10“02."0 ’03~‘04 10 500 5000 5000

Page 28: Modul Basis Data 2

Co

1-

C

I I A0125 I Ath 25 10 I 700 7000 7000

Menuliskan semua data yang akan direkam, bagian yang doubel tidak perlu dituliskan.

Terlihat record-record yang tidak lengkap, sulit untuk memhayangkan bagaimana

bentuk record yang harus dibentuk untuk merekam data tersebut.

Langkah Kedua

Ubahlah menjadi bentuk N0m1al Kesatu dengan memisahkan data pada field-field yang

tepat dan bernilai atomik, juga selumh record harus lengkap datanya. Bentukfile masih

flat.

Dengan bentuk Normal Kesatu ini telah dapat dibuat satufile dengan 11 field yaitu N0

faktur, Kode Suplier, Nama Suplier, Kode Barang, Nama Barang, Tanggal, Jatuh

Tempo, Quntity, Harga, Jumlah, Total.

.\'o. Rode .\'ama Kode .\':\m:| Tgl Jmuh Qty Harga Jumlah Total

Ink Sum) Sugpl Baran Bnrnnz Tempo

111 A101 Akbar DR138 DR_=\.\-I I 07<03.=04 I 0»=04=04 I 10 100 2000 3000

Co

I'll 111 Bonn (31751 Force 101101104 I 15103114 I 10 I 500 I 5000 5000

Co

W U1

If C3

Page 29: Modul Basis Data 2

=-

.-

LII

5

Q

E5

o

5

o

ZZZ 111 B01121 Ath Z5 _ I 10fOZ:'O4 I 15f0:.‘04 I 10 I I I _

Co

Namun bentuk Nonnal Kesatu ini mempunyai banyak kelemahan diantaranya yaitu :

- Penyisipan data

Kode Suplier dan Nama Suplier tidak bisa ditambahkan tanpa adanya transaksi

pembelian.

-Penghapusan data

Iika salah satu record dihapus maka semua data yang ada di situ akan terhapus juga.

~ Pengubahan data

Data suplier ditulis berkali-kali (Kode dan Nama). Jika suatu saat terjadi perubahan

Nama suplier maka harus mengganti semua record yang ada data supliernya. Bila tidak

maka akan terjadi inkonsistensi.

- Redundansi

Field jumlah merupakan redundansi karena setiap harga dikalikan kuanlitas hasilnya

adalah jumlah, sehingga field ini dapat dibuang. Bila tidak maka dapat mengakibatkan

inkonsistensi jika terjadi perubahan harga.

Page 30: Modul Basis Data 2

Langkah Ketiga

Pembentukan Nomlal Kedua dengan mencari field kunci yang dapat dipakai sebagai

patokan dalam pencarian dan yang mempunyai sifat yang unik. Melihat kondisi dari

pennasalahn faktur di atas dapat diambil kunci kandidat sbb :

I N0 faktur

I Kode Suplier

I Kode Barang

Buatlah tiga label dengan kunci tersebut, lihatlah kebergantungan fungsional field lain

terhadap lmnci, maka didapatkan tabel sebagai berikut :

Tabel Bamg

Tane|$\lr\he>.r ‘ Kouesnpner

Marra S ugh -er

Tahelhlola

' m(\NC\L3 , )

Hngga‘ m-te|angan

Tflrru‘-H 1 Vmnflprlrnw

Kuarmnas ".Hu|1\;\ tamu alau

Harqa um tatel maumz

Tlvlsl penqr mung

l\'£\di:§upl\-3'

'= flame Ea'angW

Dengan pemecahan seperti di atas maka sebagian dari pertanyaan pengujian pada

Page 31: Modul Basis Data 2

bentuk normal kesatu yaim masalah penyisipan, penghapusan dan pengubahan dapat

dijawab. Data suplier dapat ditambahkan kapan saja tanpa hams ada transaksi

pembelian. Namun permasalahan masih ada yaitu pada tabel nota.

I Field Kuantitas clan Harga tidak bergantung peenuh pada kunci primer nomor nota,

ia juga bergantung fungsi pada kode barang. Hal ini disebut sebagal

kebergantungan yang transitif dan harus dipisahkan dari tabel.

I M = redundansi masih terjadi, yaitu sctiap kali satu nota yang terdiri dari 5 macam

barang yang dibeli maka 5 kali pula nota clituliskan ke nomor nota, tanggal nota,

tempo da.n total. lni harus dipisallkan bila terjadi penggandaan tulisan yang

berulang-ulang.

Langkah Ke 4

Bentuk normal ketiga mempunyai syarat setiap tabel tidak mempunyai field yang

berganlung transitif, harus bergantung penuh pada kunci utama. Maka terbentuklah

tabel sebagai berikut :

TabeIS|.plier

Kod S I’

Nam‘; S‘:fi’::'[ Tabs! Barang

* Kode Barang

Nama Barang

Tabe|Nota

' No Nola

Tanggal

Tempo

Tutal

w Kode Suplier

Page 32: Modul Basis Data 2

Tabel Traksaksi

* No Nata

"* Kode Barang

Kuamltas

Harga

Langkah Ke-5

Pengqjian di sini untuk memastikan kebenaran isi tabel dan hubungan antara tabel

tersebut. Ujian bahwa seliap tabel haruslah punya hubungan dengan tabel yang lainnya.

Bila tidak ada penghubungan antar label maka dapat dikatakan perancangan untuk

membuat satu basis data adalah gagal.

Tabel Suplier Tabel Banang

rv e "\| pwr Mama Qunlfir kr\r3E! Barang Nama Earang

A o mm Camp 11 a ma

Earn Lamp

DR 126 to Ran '-

B (‘F52 GFu 19 F<4'>[n

»_Y

2,5

il

‘H

Tabel Nota

Nuhlela KudvSuu|ier Tanggul Temuu E

Page 33: Modul Basis Data 2

*0-@=»~ 15/~=M @

Tabel Traksaksi

\lo Floh KoleEiarar\g Kuantrias G

Farg

< on 1°» zunu

> r 5: some

L __ ..

to ;

,

N‘

Langkah Ke-6 Relasi Antar tabel

Gambarkan hubungan relasi antar file yang ada sebagai berikut :

./'_'\. ,7-—~\

/‘ , \ /’

{t Supller ; ,1 Ba-mg )

\=“ -’ 4 , "'A\. .\\ //

Nota ') > --

\ J/.,

' Transaksi

\_\__ ___/_,

Pengenian relasi di atas adalah

I Satu supplier punya banyak nota

IN0ta punya relasi dengan suplier bukan sebaliknya suplier punya relasi terhadap

nota.

I Sam nota punya banyak transaksi barang

Page 34: Modul Basis Data 2

I Satu barang terjadi beberapa kali transaksi pembelian barang.

Langkah Ke-7

Permasalahan di atas hanya terbatas pada safu dokumen Faktur pembelian barang,

padahal pada kenyataannya tentu faktur tersebut mempunyai dokumen pelengkap

misalnya nota penjualan barang. laporan stok barang, laporan penjualan. laporan

pembelian dan masih banyak lagi laporan dan dokumen data enty lainya.

Dengan langkah-langkah perancangan seperti di atas maka diperoleh field-field untuk

melengkapi tabel-tabel yang ada dalam satu basis data. Misalnya tabel barang dengan

bertambahnya field yang lain menjadi :

Tabel Barang

Ha Ge Bara mg

Ma m a Baran g

Hargn Bah

Hqrga Jual

5tak -Qkhir

S:-nk Amal Eulan

2. Tugas Pendahuluan

1. Jelaskan yang dimaksud dengan Normalisasi !

2. Sebutkan dan jelaskan macam-macam normalisasi !

3. Sebutkan dan jelaskan fungsi dari normalisasi !

4. Buatlah contoh sederhana ER-M0delN0rmalisasi !

3. Praktikum

Page 35: Modul Basis Data 2

Diberikan tabel Mahasiswa di bawah ini :

N]1\/I I Nan1a_Mahasiswa I Tgl_LahiI I K0de_MK I Nama_MK I sks I Nilai I bobot

32980 I BudiSusi1o I 15/06/1992 I MKIOO I Fisika I 3 IA I 4

I I I MK101 I Matematika I 3 I 13

32982IAhmadMundari 13/08/l993IMK102 IBasisData I3 IB

I3

32981ISinta I09/09/1993|MKl02 IBasisData I3 IA I4

I3

I2

I MKIOO IFisika I3 Ic

I MKIOI I Matematika I 3 I B I 3

Dari tabel diatas, buatlah normalisasi sarnpai bentuk normal ke tiga !

4. Pertanyaan dan Tugas

Buatlah normalisasi tabel dari topik yang dipilih pada modul 1 !

MODUL IV

DESAIN DA TABASE SECARA VISUAL

Materi

MySQL Workbench

Database relasional membuat backends penyimpanan data yang ideal untuk

banyak aplikasi. Khususnya database MySQL. Ada banyak kepentingan dalam

mengembangkan aplikasi yang mendukung untuk bekerja dengan database MySQL.

Selain antarmuka baris perintah , ada banyak program yang tersedia gratis dan

Page 36: Modul Basis Data 2

komersial baik untuk memperbarui, membuat, dam rnengelola database MySQL.

Sehingga hasilnya sering kali teljadi bahwa dalam sebuah tim pengembang masing-

masing memiliki pilihan interface.

Sebagai konsekuensi bahwa banyak update dilakukan sepanjang siklus hidup

database dilakukan dengan menggunakan sq/tware berbeda, kadang-kadang

memperkenalkan inkonsistensi pada aplikasi kecil memerlukan pengembangan dan

penyebaran cepat.

Satu aplikasi baru saja ditemukan yang berguna untuk menciptakan dan

memelihara database skala lebih besar proyek adalah MySQL Workbench, sebuah alat

desain visual dan penerus DBDesigner4.

Export ER-Diagram ke Mysql

Misalkan terdapat desain database yang sudah dibuat dari MySQL Workbench berikut :

3 wand v

xdmapel wr ‘ II squster v

kode_méDel VARCHARH5) xisemester wr

na|na_mBpE| VARCHARH5) >(— - -(J flamuemesier V»‘~R<3HAR( 15)

sks 1m ‘ tahur\_semester INT

§EmEsm_|d§Emes:E| rm v

>

:| siswa v I

|ds|swa INT W g g A

n0_ah5en m-r :1 mapd_diamhI v j nhunanel v

nm.srswa vARcH»\R(4§> \dmape|_d1amb\|1NT ‘ idn|>a\_maDe| wr

1k__s|swa VARCHARO5) H. __| 5‘;-,\va_,¢s.5,A-5 my ,4, _ _ _; n|Ia\_mapel 1m

Ema\l_§vswa VARCHARH5) % mapel_|dmape\ wr j mape!_d>amb\\Jdmape|_d|amb1| rm

Page 37: Modul Basis Data 2

me|p_s|sv\-a vAnc|-»\R(15) > >

alamat_srswa TEXT

Gambar 4.1 ER-Diagram Mengambil Mata pelajaran

New can-m

cu-no

qzmkeoent

douTd> CM-1»W

-i vidm-!o=HNT

<>lwad:__mapdVARCHAR(45)

<>nIvw_mwdVARO~1AR(45) - 4 ‘

9 <>d<s1NT

Save Ol.rH-S

SBVQM... Oflfifiifl-I5

Input

PmtPreview.r.

Pint... can-W E4-;mmgK;,,_

Expwtas§dePageFW.‘.

Exportas&\flePnpPos\SabkH:...

PMCMPDF...

PFHHOPSFE...

ForwaIdE|1jleaSq.ALTB15ubt...

mmmmwum... l <>maoel_idwwdlNT

Page 38: Modul Basis Data 2

an H

Indaxes

\/ Lalu klik Browse untuk menyimpan file *.sq1

Gambar 4.2 Pilihan export ke mysql

~/ Lalu pilih menu file 9 Export 9 Forward Engineer SQL CREATE Scrlpt

,1 ~1§kt1r1.|w.-1h— 1w<r;>1 Wmkhenrh

V-

! icbenesta INT

O ru|\a_se|nes1:r VARfl'lAR(1.5)

O H1:n_sa|:sler INT

Indexes

!“

I bfiai_mq>el 1NT

~ 0 rfi_|nqJd INT

0 |\'|mel_\‘la|l'bi_itiI\q>d_<iIIbl INT

Indexes

Gambar 4.3 Form penimpanan file .sq1

~/ Lalu pilih tempat penyimpanan file belajansql dan klik save lalu klik next.

Or

:1 2'

.

§'a."L

Page 39: Modul Basis Data 2

-a-

Q:-..

i 2:."

Gambar 4.4 pilih tempat penyimpanan

\/ Lalu tekan tombol finish. File belajansql sudah tersimpan

Gambar 4.5 Export ke .sql selesai

Maka akan terlihat coding-coding sql berikut setelah dibuka dengan menggunakan

aplikasi editor tanpa harus menghafal querfy.

4 Ifii II § XIII‘ 'Ii_IIqZ.il' fill ii II lllllll ii 1lI£l1_lII(llIh_I§. I

UII 'ul_nlmIuIll':

~— 1*-nu '¢1_-\-=1-n‘.‘uu-'

nun ‘Ml:-I II new nun ‘-1_-nu-n.n'.'|A-u‘ K

'LllllIA‘ lfl ID! lllll AIIMJIQBZQ »

'no_&nn‘ IR INH-

'nauu_nLnwn' %MI

‘jl_nLnwn' Vflllll

‘u-u_-an-“ vunun

'u0tn1.p_|llwu' ‘Mil

‘fill! I. “ Tl“

_n nu nu. .

nmnnr an 114-1“-‘J )

BUYS I ltytlflh

a

¢

Page 40: Modul Basis Data 2

Gambar 4.6 Hasil Export ke .sql

1.3 Data Definition Language (DDL)

DDL SQL memungkinkan dilakukannya spesifikasi tidak hanya. pada himpunan

relasi tetapi juga informasi untuk seliap relasi, yang meliputi :

- Skema setiap relasi

- Domain nilai setiap atribut relasi

- Konstrain integritas

- Himpunan indeks untuk setiap relasi

- Sekuriti dan autorisasi setiap relasi

- Strukmr penyimpanan secara fisik untuk setiap relasi dalam disk.

Perintah SQL untuk definisi data:

- CREATE untuk rnembentuk basis data, taable atau index

- ALTER untuk mengubah struktur table

- DROP untuk menghapus basis data, table atau index

CREATE DATABASE

- Untuk membentuk basis data

- Sintaks: CREATE DATABASE nama_dazabase

- Contoh: ‘

CREATE DA T ABASE COMPANY i

CREATE TABLE

- Untuk membentuk table dari basis data

- Untuk rnenyebutkan spesifikasi dan batasan atribut

Page 41: Modul Basis Data 2

Contoh:

CREATE TABLE EMPLOYEE

( PNAME CHARU5) NOT NULL

LNAME CHAR(l5) NOT NULL

SSN CHAR(9) I\'OT NULL

BDATE DATE

ADDRESS CH_AR(3(J)

SEX CHAR

SALARYDECIMAL(1().2)

DNO CHAR(I0) );

ALTER TABLE

Digunakan untuk mcngubah struktur table

Contoh kasus:

Misalkan ingin menambahkan kolom JOB pada table EMPLOYEE dengan tipe

karakter selebar 12.

Perintah:

I

ALTER TABLE EMPLOYEE ADD JOB CHAR(l2); ‘

CREATE INDEX

Membentuk berkas index dari tablfi

Index digunakan untuk mempercepat proses pencarian

Sintaks: CREATE [UNIQUE] INDEX nama_index

Page 42: Modul Basis Data 2

ON nama_table(k0I0m1, k010m2, )

Contoh:

I CREATE INDEX EMPLOYEENDX ON EMPLOYEE(SS]\') i

DROP DA TABASE

Menghapus Basis Data

Sintaks: DROP DATABASE nama_database

Contohz

I DROP DATABASE COMPANY i

DROP TABLE

Menghapus Table

Sintaks: DROP TABLE nama_table

Contohz

I DROP TABLE EMPLOYEE i

DROP INDEX

Menghapus Berkas Index

Sintaks: DROP INDEX nama_index

Contoh:

i DROP INDEX EMPLOYEENDX i

Data Manipulation Language(DML)

Merupakan bentuk bahasa basis data yang berguna untuk melakukan manipulasi

data dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa 1

1. penyisipan/penambahan data baru ke suatu basis data

2. pcnghapusan data dari suatu basis data

3. pengubahan data di suatu basis data

Pada level fisik, kita hams mendefinisikan algoritma yang niernungkinkan

Page 43: Modul Basis Data 2

pengaksesan yang eflsien terhadap data. Pada level yang lebih tinggi, yang dipentingkan

bukan hanya eflsiensi akses, tetapi juga efisiensi interaksi manusia (pemakai) dengan

sistem (kemudahan permintaan akses).

Data Manipulation Language (DML) merupakan bahasa yang bertujuan

memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh

model data. Ada 2 jenis DML, yaltu 1

l. prosedural, yang mensyaratkan agar pemakai menentukan, data apa yang

diinginkan serta bagaimana cara mendapatkannya.

2. Nonprosedural, yang membuat pemakai dapat menentukan data apa yang

diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.

1.5 Struktur Dasar

Select/11,A2 ,,,, ..An

From rl,rZ, ....rn

WhereP

IA is represent attributes

Ir is represent relations

IP is a predicate.

IKlaasa Select berhubungan dengan operasi proyeksi dari aljahar relasional.

IOperasi ini digunakan untuk nlendafrar selnua atribut yang diinginkan sebagai

hasil Slidlu query.

IKlausa From berhubungan dengan operasi Cartesian-product dari aljabar

relasional.

Page 44: Modul Basis Data 2

IOperasi ini mencaiat semua relasi yang all "scan" dalam evaluasi suaiu query.

IKlausa Where berhubungan dengan operasi predikat seleksi dari al/abar

relasional.

IOperasi ini terdiri dari sehuah predikat yang menyangkur atrihut-airibui dari

relasi yang muncul dalam klausafivrn.

1.6 Menghapus Record Data

Adalah perintah untuk menghapus satu tuple bukan nilai pada suatu atribut

tertentu. Sintaksnya : Delete from r Where p, dimana p menunjukkan predikat dan r

adalah relasi.

1.7 Menyisipkan Record Data

Digunakan untuk menambahkan satu tuple dalam relasl. Contoh : Insert into

account values (“Perryridge”,”A-9732”,1200), Query ini identik dengan : lnsert into

account (branch-name, account-nwnber,balance) Values (“Penyridge”,”A-

9732",1200)

Update Data

Dalam situasi tertentu, diinginkan untuk mengganti nilai dalam sebuah tuple

tanpa harus mengganti semua nilai dalam tuple tersehut. Untuk tujuan illi dapal

digunakan statement update. untuk menaikkan saldo para nasabah sebesar 5% ditulis

query sebagai berikut :

Update account set balance = halance * 1.05

Untuk menaikkan saldo nasabah sebesar 6% bagi nasabah yang saldonya lebih dari

$10000, ditulis query sebagai berikut :

Page 45: Modul Basis Data 2

Update account set balance = balance *1 .06

Where balance >1 0000

1 9 Query

Query adalah 'permintaan data‘ kita berupa bahasa bisnis, untuk mengolah data

dalam tabel(-tabel) menjadi satu infonnasi yang bisa dimengerti. Seperti

mengelompokkan sepuluh penjualan terbesar oleh customer yang dimiliki. Ia bisa

berdasarkan pada satu tabel saja, atau pada dua/lebih tabel, ataupun berdasarkan pada

query yang telah ada.

Manfaat query :

a. Menampilkan data-data tertentu pada suatu table, contohnya kita hanya ingin

melihat data pada table barang yang kode barangnya “B001”

b. Menampilkan data dari dua table atau Iebih dengan syarat anatr table itu ada field

yang berhubungan. Contohnya kita ingin melihat Nomor Faktur “F0001” itu siapa

pemiliknya. Di sini kita rnengambil data dari table Header Penjualan dan Table

Karyawan. Sebagai penghubungnya adalah field NIK.

c. Dapat melakukan operasi perhitungan.

Tugas Pendahuluan

1. Jelaskan perbedaan DDL dan DML I

2. Sebutkan dan jelaskan jenis data manipulation language (DML) !

3. Buatlah ER-diagram dan relasinya dengan menggunakan MySQL Workbench!

Praktikum

Buatlah Desain ER-Diagram seperti gambar 4.1 diatas.

Pertanyaan dan Tugas

Buatlah Desain ER-Diagram sesuai dengan topik yang sudah dipilih.

Page 46: Modul Basis Data 2

1

12

MODUL V

PENGEMBANGAN APLIKASI BASIS DATA

Materi

PHP

PHP adalah salah satu bahasa pemrograman di Internet. PHP bersifat cepat, gratis

dan murah ( gratis ), selain itu PHP mendukung penggunaan database seperti MySQL,

P0stgreSQL. mSQL, Oracle etc.

Untuk dapat menjalankan PHP inelalui browser, maka anda diharuskan terlebih

dahulu menginstall web server ( misalnya Apache, PWS, IIS ) lalu menginstall PHP,

sedangkan untuk menjalankan MySQL anda tidak perlu menginstall web server, hanya

saja jika ingin dijalankan melalui browser, maka anda harus menginstall web server.

Prosedur penginstallan web server, PHP dan MySQL dapat ancla baca pada manual

masing — masing.

MySQL

MySQL adalah sebuah Qerangkat lunak sistem manajemen basis data Q

(baliasa Inggris: database management system) atau DBMS yang multitliread, m@

_Lfi[, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL

tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License

(GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana

penggunaannya tidak cocok dengan penggunaan GPL.

Tidak sama dengan proyek-proyek seperti Aggy, dimana perangkat lunak

Page 47: Modul Basis Data 2

dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh

penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah pcrusahaan

komersial M MySQL AB, diinana memegang hak cipta hampir atas semua kode

sumbernya. Kedua Orang Swedia dan satu orang Finlandia yang mendirikan MySQL

AB adalah: David Axmark, Allan Larsson, dan Michael "Montv" Widenius.

MySQL adalah Relational Database Management System (RDBMS) yang

didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana

setiap orang bebas untuk menggunakan MySQL, namun ticlak boleh dijadikan produk

turunan yang bersifat closed source atau komersial. MySQL sebenarnya merupakan

turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured

Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk

pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data

dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS)

dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah

SQL, yang dibuat oleh user maupun program-program aplikasinya. Sebagai database

server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya

dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user,

kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali

lebih cepat dibandingkan lnterbase. Selain itu MySQL juga memiliki beberapa

keistimewaan, antara lain

Portability

MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux,

Page 48: Modul Basis Data 2

FreeBSD, Mac Os X Sewer, Solaris, Amiga, dan masih banyak lagi.

Open Source

MySQL didistribusikan secara open source (gratis). dibawah lisensi GPL sehingga

dapat digunakan secara cuma-cuma.

Multiuser

MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa

mengalami masalah atau konflik.

Performance tuning

MySQL memiliki kecepatan yang rnenakjubkan dalam menangani query sederhana,

dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.

Column types

MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer,

float, double, char, text, date, timestamp, dan lain-lain.

Command dan functions

MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select

dan Where dalam query.

Security

MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan

izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.

Scalability dan limits

MySQL mampu menangani database dalam skala besar, dengan jumlah records lebih

dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat

ditampung mencapai 32 indeks pada tiap tabelnya.

Page 49: Modul Basis Data 2

>

>

>

>

>

1.3

1.3.1

1.3.2

Connectivity

MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix

soket (UNIX), alau Named Pipes (NT).

Localisation

MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih

dari dua puluh bahasa. Meskipun demikian, bahasa Indonesia belum termasuk

didalamnya.

Interface

MySQL inemiliki interface (antar inuka) terhadap berbagai aplikasi dan bahasa

pemrograman dengan menggunakan fungsi API (Application Programming Interface).

Clients dan tools

MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi

database, dan pacla setiap tool yang ada disertakan petunjuk online.

Struktur tabel

MySQL inemiliki struktur tabel yang lebih fleksibel dalam inenangani ALTER

TABLE, dibandingkan database Iainnya semacam P0stgreSQL ataupun Oracle.

Page 50: Modul Basis Data 2

Koneksi PHP dan MySql

Membuka koneksi ke server MySQL

mysql_c0nnect()

Digunakan untuk melakukan uji dan koneksi kepada server database MySQL.

Sintaks :

l $c0nn = mysql_c0nnect (”h0st",”username”,”passw0rd”); l

$c0nn adalah nama variabel penampung status hasil koneksi kepada database.

host adalah nama host atau alamat server database MySQL.

username adalah nama user yang dapat mengakses server database.

password adalah kata sandi untuk username untuk dapat masuk ke dalam database.

Memilih database yang akan digunakan di server

mysql_select_db()

Digunakan unmk melakukan koneksi kepada database yang dalain server yang berhasil

dikoneksi dengan perintah mysql_c0nnect().

Sintaks :

I $pilih = mysql_select_db(”11amadatabase”,$c0nn); l

$pi1ih berisi status koneksi kepada database.

$c0nn merupakan koneksi kepada server database yang berhasil.

namadatabase adalah nama database yang akan dikenai proses.

1.3.3 Mengambil sebuah query dari sebuah database.

mysql_query()

Digunakan untuk melakukan eksekusi perintah SQL untuk memanipulasi database yang

Page 51: Modul Basis Data 2

berhasil dilakukan koneksinya menggunakan mysq1_select_db().

Sintaks :

I $hasil = mysql_query(”SQL Statement”);

$hasi1 akan berupa record set apabila SQL Statement berupa perintah select.

1.3.4 Mengambil record dari database

a) mysql_fetch_array()

Digunakan untuk melakukan pemrosesan hasil query yang dilakukan dengan

perintah mysql_query(), dan memasukkannya ke dalam array asosiatif, array

numeris atau keduanya.

Sintaks :

$r0w = mysql_fetch_array($hasil);

$row adalah array satu record dari record $hasil yang diproses nomor record

sesuai dengan nomor urut dari proses mysql_fetch_array yang sedang

dilakukan.

$hasil adalah record set yang akan diproses.

b) mysql_fetch_assoc()

Fungsi ini hampir sama dengan fimgsi mysqI_fetch_array(), hanya saja array yang

dihasilkan hanya array asosiatif.

Sintaks :

$row = mysql_fetch_ass0c($hasil); ‘

c) mysql_fetch_r0w()

Fungsi ini hampir sama dengan fungsi mysq1_fetch_array(), hanya saja array yang

dihasilkan hanya array numeris.

Sintaks :

$r0w = mysql_fetch_r0w($hasil); ‘

Page 52: Modul Basis Data 2

d ) mysql_num_r0ws()

Fungsi ini digunakan untuk menghitung jumlah record yang ada pada dalabave

Sintaks :

I $jml = mysql_num_rows($hasil);

$jm1 akan memiliki nilai sesuai dengan jumlah record yang ada

1.3.5 Menguji koneksi PHP dengan MySQL

<html>

<head>

<title>Koneksi Database MySQL</t;tle>

</head>

<body>

<hl>3emo koneksi database MySQL</hl>

<?

$conr=mysql connect ("localhost" "root" ""

if ($conn) Y

echo "OK";

} e_se {

echo

}

?>

</body>

</html>

Page 53: Modul Basis Data 2

V ,),

"Server not connected";

1.3.6 Melihat perbedaan antara mysqI_fetch_array() mysql_fetch_ass0c(),

mysql_fetch_r0w()

a. Buatlah tabel liga berikut ini, dengan 3 field : kode, negara, champlon

C1f€Elt€

table liga (

kode char(3) not null,

negara char(l5),

champion int );

b. Isilah tabel dengan data berikut ini :

Insert

values

Insert

va;ues

Insert

values

Insert

va;ues

into liga (kode, negara, champion)

(‘jer’,'Jerman’,4);

into liga (xode, nagara, champion)

(‘spa','Spanyol',4);

into liga (kode, negara, champion)

(‘ing’,'Inggris',3);

Page 54: Modul Basis Data 2

into liga (xode, negara, champion)

(‘bel',’Belanda',3);

c. Akses databases menggunakan mysql_fetch_array()

<HTML>

<HEAD>

<ti:le>Koneksi Database MySQL</title>

</I-IEAD>

<BODY>

<hl>Koneksi database dengan mysql_fetch_array</h1>

<?

$conn=mysql_connect ("localhost",":0ot","“)

or die ("koneksi gagel");

mysql_select_db("basdat",$co2n);

$hasi1 = mysql_query("select * from liga",$ccnn);

while ($row=mysql_fetch_array($hasil)) (

echo "Liqa " .$row["negara"]; //array asosiatif

echo " mempunyai " .$row[2]; //array numeris

echo " waki; di liga champion <br>";}

?>

</3ODY>

</HTML>

d. Akses databases menggunakan mysql_fetch_ass0c()

Page 55: Modul Basis Data 2

<HTML>

<HEAD>

<ti:le>Koneksi Database MySQL</title>

</HEAD>

<BODY>

<h1>Koneksi database dengan mysql’fetch’assoc</hl>

<?

$conn:mysql_connect ("localhost",":oot","")

or die ("koneksi gagal");

mysql_select_db("basdat",$co:n);

$hasil I mysql’query("select * from liga",$conn);

while ($row=mysql_fetch_array($hesil)) (

echo "Liga " .$row["negara"1;

echo " menpunyai " .$row[“champion”];

echo " wakil di liga champion <br>";}

?>

</BODY>

</HT)/lL>

e. Akses databases menggunakan mysq1_fetch_row()

<HTML>

<HEAD>

<ti:le>Koneksi Database MySQL</title>

</HEAD>

<BODY>

<h1>Koneksi database dengan nysql’fetch’assoc</hl>

Page 56: Modul Basis Data 2

<?

$conn=mysql_ccnnect ("localhost",":oot","")

or die ("konexsi qaqal");

mysql_select_db("basdat",$co2n);

Shasil = mysql’query("select * from liga",$conn);

while ($row=mysql_fetch_row(Shasil)) (

echo "Liga " .$row[1];

echo " mempunyai " .$row[2];

echo " waki; di liga champion <br>";}

?>

</BODY>

</HTML>

1.4 Koneksi J ava-MySQL dengan JDBC

Untuk melakukan koneksi dari Java ke MySQL melalui JDBC, berikut Iangkahlangkah

singkatnya 1

1. Pastikan di komputer Anda sudah terinstall :

a. Java Versi terakhir bisa didownload di http://java.sun.c0m

b. MySQL Versi terakhir bisa didownload di hltp;//www.mysq1.c0m

c.JDBC JDBC merupakan driver penghubung antara aplikasi (program) java

dengan DBMS (Database Management System). Versi terakhir

bisa Anda download di :

http://dev.mysql.com/downloads/co11nect01% j/3 . 1 .html.

Page 57: Modul Basis Data 2

Untuk menginstall JDBC, ada beberapa cara :

1) Copy sub direktori "com" dan "org" beserta semua isinya kc

komputer Anda (boleh di mana saj a), dan tambahkan sub

direktori "com" dan "org" pada CLASSPATH komputer Anda.

2) Copy sub dircktori "com" dan "org" beserta semua isinya kc

direktori program java Anda (tidak perlu setting CLASSPATH)

3) Copy ke komputer Anda file :

mysql-connector-java-X.x.x-stable-bin.jar

dan taInba.hka.n file tersebut pada CLASSPATH kornputer Anda,

atau bisa juga menaruh file tersebut pada clirektori 1

$JAVA_HOME/jre/lib/ext.

2. Melakukan koneksi database

a. Mengaktiflmn driver JDBC

Class.forName("c0m.mysql.jdbc.Driver");

Atau jika sudah setting CLASSPATH-nya, bisa langsung dengan perintah :

Class.f0rName("jdbc.Driver");

b. Membuat koneksi

Langkah berikutnya adalah melakukan koneksi kc

database, berikut perintahnya :

Connection con = DriverManager.getC0nnecti0n(url, usr, pwd);

dimana :

- con adalah variabcl beflipc Connection.

Page 58: Modul Basis Data 2

- scbaiknya con di deklarasikan sccara global

- url adalah informasi jenis database + host database + nama

database - usr adalah user umuk koncksi kc database

- pwd adalah password untuk masuk ke database

Contoh :

Connection con I DriverManager.ge&Connccti0n

(‘jdbc:mysql://localhost/mhs", "root", "");

/ contoh Program Lengkap untuk melakukan koneksi :

class KoneksiMysql {

String url, usr. pwd_ dbn;

dbn = "rnahasiswa";

url= "jclbc:mysql://localhost/" + dbn;usr ="r00t";

pwd 2"";

public connection getC0nnecLion() {

Connection con I null;

Y8’ l

lass.f0rName("com.mysql.jdbc.Driver");

con I DriverMa.na er.getC0r1necti0n(url, nsr, pwd); } catch

(ClassN0tF01mdExc<-rption S {

System0uLp1-lnth1 ("Error #1 :"+ e.getMessagc()); Systcm.exit((J);

} catch (SQLExcepti0n e) {

System0uttprintln("Err0r #2 :" + e.getMessagc()); Sy .exit10);

stem

l

return con;

Page 59: Modul Basis Data 2

Tugas Pendahuluan

1.] elaskan bagaimana cara menginstal PHP dan MySql I

2.Jelaskan cara mengkoneksikan PHP dan MySql !

3.Jelaska_n cara mengkoneksikan java dan MySql I

Praktikum

Tools : Apache, PHP, MySql, java

Untuk latihan buatlah salah satu modul/fasilitas dalaln topik aplikasi basis data

anda menggunakan PHI’ atau java dan MySql

Pertanyaan dan Tugas

Buat aplikasi basis data scsuai dengan topik yang dipilih dan presentasikan hasilnya!