You are on page 1of 59

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 (eld), rekaman (record), dan berkas (le). Denisi 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|lDH\\lv|~I/\ I I El1*Im,-v\D-Ila!tmrftl) EhmwnDu!-itfmltlr I Gambar L1 Hlflkl dla 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. data/informasi mengubah, menghapus, memodikasi dan memperoleh

dengan praktis dan esien. 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 didenisikan 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 sikal (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 esien. 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 sik 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 sik. 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 sik 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 sik. Model ini menyediakan merancang perancang suatu kendaraan untuk pertimbangan dalam

basis data yang esien. Perancangan basis data secara sik adalah proses memproduksi deskripsi

implementasi basis data pada penyimpanan sekunder, mendeskripsikan stru.kturstruktur penyimpanan dan metode-metode pengaksesan dalam meningkatkan efektitas pengaksesan. Pada tahap ini, perancangan sik telah ditujukan untuk sistem DBMS tertentu. Perancangan basis data tingkat sik sudah dikaitkan dengan platform dan pcrangkat lunak sistem diimplementasikan. manajemen basis data dimana basis data

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 sik untuk basis data relasional pada tahap 4 sampai dengan tahap 7. a) Tahap l Membangun rancangan data konseptual lokal berdasarkan pandangan pemakai. Yaitu mengidentikasikan himpunan entitas - himpunan entitas. Mengidentikasikan keterhubungan-keterhubungan (relationship), mengidentikasikan 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, mendenisikan 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 sik. Yaitu menganalisa transaksitransaksi, memilih organisasi le, 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 spesikasi 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 diversikasi 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 jajarangenjang. 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 identier (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 identier sendiri. Secara umum, dalam diagram ER entitas lemah memiliki atribut yang berperan sebagai partial identzfer (identier 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 efektitas 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 mengidentikasi 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 mengidentikasi 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 mengidentikasi sebuah record di dalam relasi atau himpunan dari satu atau lebih entitas yang dapat digunakan untuk mengidentikasi 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 mengidentikasi 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 rnengidentikasi 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 @ MN M1 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: pernbelian

menyiinpan

semua

informasi

mengenai

semua

transaksi

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_pI[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)lI1bli2lIl ~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 verikasi 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 eksibel atau mengurangi keekxibelan. > Kroenke mendenisikan 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 dngan 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 pemodikasian 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 le at, data dibentuk dalam satu record demi satu record dan nilai dari eld benlpa atomic value. Tidak ada set atribut yang berulang ulang atau atribut bernilai ganda (multi value). Tiap eld 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 eld. Kunci eld 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 le 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 AA 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 membutuhkan atau dua seminar. Setiap seminar

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 GPorceFX 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 eld 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 07O3w04 07-04~04 10 200 Z000 2000 Co 122 I B111 I Bona GI-'52 I GI-one 1002."0 03~04 10 500 5000 5000 Co 1C 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 eld-eld yang tepat dan bernilai atomik, juga selumh record harus lengkap datanya. Bentukle masih at. Dengan bentuk Normal Kesatu ini telah dapat dibuat satule dengan 11 eld 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, mengakibatkan sehingga eld ini dapat dibuang. Bila tidak maka dapat

inkonsistensi jika terjadi perubahan harga. Langkah Ketiga Pembentukan Nomlal Kedua dengan mencari eld 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 eld 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 Trru-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 eld yang berganlung transitif, harus bergantung penuh pada kunci utama. Maka terbentuklah tabel sebagai berikut : TabeIS|.plier Kod S I Nam; S:::'[ 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 Qunlr 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 le 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 eld-eld untuk melengkapi tabel-tabel yang ada dalam satu basis data. Misalnya tabel barang dengan bertambahnya eld 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 masingmasing 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_mDel VARCHARH5) xisemester wr na|na_mBpE| VARCHARH5) >( - -(J amuemesier V~R<3HAR( 15) sks 1m tahur\_semester INT EmEsm_|dEmes: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-1W -i vidm-!o=HNT <>lwad:__mapdVARCHAR(45) <>nIvw_mwdVARO~1AR(45) - 4 9 <>d<s1NT Save Ol.rH-S SBVQM... Oi-I5 Input PmtPreview.r. Pint... can-W E4-;mmgK;,,_ ExpwtasdePageFW.. Exportas&\ePnpPos\SabkH:... PMCMPDF... PFHHOPSFE...

ForwaIdE|1jleaSq.ALTB15ubt... mmmmwum... l <>maoel_idwwdlNT an H Indaxes \/ Lalu klik Browse untuk menyimpan le *.sq1 Gambar 4.2 Pilihan export ke mysql ~/ Lalu pilih menu le 9 Export 9 Forward Engineer SQL CREATE Scrlpt ,1 ~1kt1r1.|w.-1h 1w<r;>1 Wmkhenrh V! icbenesta INT O ru|\a_se|nes1:r VAR'lAR(1.5) O H1:n_sa|:sler INT Indexes ! I bai_mq>el 1NT ~ 0 r_|nqJd INT 0 |\'|mel_\la|l'bi_itiI\q>d_<iIIbl INT Indexes Gambar 4.3 Form penimpanan le .sq1

~/ Lalu pilih tempat penyimpanan le belajansql dan klik save lalu klik next. Or :1 2' .

'a."L -aQ:-.. i 2:." Gambar 4.4 pilih tempat penyimpanan \/ Lalu tekan tombol nish. 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 Ii II XIII 'Ii_IIqZ.il' fill ii II lllllll ii 1lIl1_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 l ID! lllll AIIMJIQBZQ 'no_&nn IR INH'nauu_nLnwn' %MI jl_nLnwn' Vllll u-u_-an- vunun 'u0tn1.p_|llwu' Mil ll! I. Tl

_n nu nu. . nmnnr an 114-1-J ) BUYS I ltytlh a

Gambar 4.6 Hasil Export ke .sql

1.3 Data Denition Language (DDL) DDL SQL memungkinkan dilakukannya spesikasi 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 sik untuk setiap relasi dalam disk. Perintah SQL untuk denisi 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 spesikasi 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 tabl 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 sik, kita hams mendenisikan algoritma yang niernungkinkan pengaksesan yang esien terhadap data. Pada level yang lebih tinggi, yang dipentingkan bukan hanya esiensi akses, tetapi juga esiensi 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 klausavrn. 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,A9732",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 eld 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 eld 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@ _L[, 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 perintahperintah 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 konik. 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 Interface). dengan menggunakan fungsi API (Application Programming

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 eksibel 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 mgsi 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 eld : kode, negara, champlon C1fElt 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 mysqlfetchassoc</hl> <? $conn:mysql_connect ("localhost",":oot","") or die ("koneksi gagal"); mysql_select_db("basdat",$co:n); $hasil I mysqlquery("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 nysqlfetchassoc</hl> <? $conn=mysql_ccnnect ("localhost",":oot","") or die ("konexsi qaqal"); mysql_select_db("basdat",$co2n); Shasil = mysqlquery("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 le : mysql-connector-java-X.x.x-stable-bin.jar dan taInba.hka.n le tersebut pada CLASSPATH kornputer Anda, atau bisa juga menaruh le tersebut pada clirektori 1 $JAVA_HOME/jre/lib/ext. 2. Melakukan koneksi database a. Mengaktimn 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 beipc 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!

You might also like