modul basis data 2
DESCRIPTION
Modul Basis Data 2TRANSCRIPT
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
(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.
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.
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-
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
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
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
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
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
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 :
' 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
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 \
\
"
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
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
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)
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
(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
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
>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:
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
> 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.
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.
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
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
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.
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’
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
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
=-
.-
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.
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
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
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
*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
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
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
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
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
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
-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
¢
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
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
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
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.
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 :
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.
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
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,
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.
>
>
>
>
>
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.
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
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); ‘
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>
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);
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()
<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>
<?
$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.
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.
- 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;
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!