tugas 5
Contoh Kasus Entity Relasionship Diagram Hotel
dalam sebuah hotel terdapat banyak entity, yang terdiri dari pegawai, tamu, kamar, fasilitas, harga, transaksi masuk, dan transaksi keluar.
LANGKAH-LANGKAH MEMBUAT :
1. Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat.
Terdapat 7 entita: pegawai, tamu, kamar, fasilitas, harga, transaksi masuk, dan transaksi keluar.
2. menentukkan atribut dari setiap entitas
pegawai = Nip. Nama, Jabatan, Alamat, Telepon, Tahun_Masuk.
tamu = Nama, Id-tamu, Alamat, Telepon, Lama-inap.
kamar = id-kamar, no-kamar.
fasilitas = id-tipe kamar, jumlah kamar, jenis-tipe kamar, other-fasilitas.
harga = id-harga, weekend, weekdays.
transaksi masuk = id-transaksi, reservasi, tanggal chekin.
transaksi keluar = id-transaksi kluar, chekout.
3. Menentukkan Primery key dari setiap entitas
pegawai = Nip
tamu = Id-tamu
kamar = id-kamar
fasilitas = id-tipe kamar
harga = id-harga
transaksi masuk = id-transaksi.
transaksi keluar = id-transaksi kluar
4. Menentukan relasionship antar entity
pegawai - melayani - transaksi masuk dan transaksi keluar
tamu - melakukan- transaksi masuk dan transaksi keluar
kamar - memiliki - fasilitas dan harga
transaksi inap - untuk harga
fasilitas - mempunyai harga
5. Menentukan Cardinality Rasio
pegawai - melayani - transaksi masuk dan transaksi keluar (1:N, 1:1)
tamu - melakukan- transaksi masuk dan transaksi keluar (M:N, 1:1)
kamar - memiliki - fasilitas dan harga (M:N)
transaksi inap - untuk harga (1:N)
fasilitas - mempunyai harga (1:1)
tugas 4
NORMALISASI DATABASE
Normalisasi merupakan teknik untuk mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik(tanpa adanya redudansi). Normalisasi dalam suatu database biasanya hanya mencapai N3(Normalisasi Ketiga), dibawah ini merupakan urutan Normalisasi :
1. N1 (Normalisasi Pertama) Mempunyai aturan - Mendefinisikan primary key - Tidak ada grup yang berulang - Semua non-primary key bergantung pada primary key
2. N2 (Normalisasi Kedua) Mempunyai aturan - Memenuhi aturan N1 - Tidak ada ketergantungan parsial
3. N3 (Normalisasi Ketiga) Mempunyai aturan - Memenuhi aturan N2 - Tidak ada ketergantungan transitif
Sebagai tambahan normal dalam suatu database sejatinya mencapai bentuk normal tertinggi dan bergerak dari bentuk normal 1 dan seterusnya untuk setiap kali membatasi hanya satu jenis redudansi. Jumlah normalisasi seluruhnya ada 5(Lima) dimana 3 bentuk normal pertama menekankan redudansi yang muncul dari Function Dependencies sedangkan N4 dan N5 menekankan redudansi yang muncul dari kasus Multi Valued Dependencies.
Berikut adalah cara singkat melakukan normalisasi
1. Normalisasi Pertama a.k.a N1, Hilangkan duplikasi dengan mencari ketergantungan parsial
2. Normalisasi Kedua a.k.a N2, Field-field yang tergantung pada satu field harus dipisah dengan tepat
3. Normalisasi Ketiga a.k.a N3, Cari hubungan transitif(transitive relation) dimana field non key tergantung pada field non key lainnya
Tabel yang sudah mencapai N3 sudah siap untuk diimplementasikan dalam sebuah proyek, sebenarnya masih ada bentuk normalisasi yang lain yaitu Normalisasi Boyce-Codd dan N4. Jadi sebelum membuat suatu project normalisasikanlah database anda.
Tujuan dari normalisasi
􀂉 Untuk menghilangkan kerangkapan data
􀂉 Untuk mengurangi kompleksitas
􀂉 Untuk mempermudah pemodifikasian data
Proses Normalisasi
· Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
· Apabila tabel yang diuji belum memenuhi persyaratan tertentu,maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Tahapan Normalisasi
Bentuk Tidak Normal
Menghilangkan perulangan group
Bentuk Normal Pertama (1NF)
Menghilangkan ketergantungan sebagian
Bentuk Normal Kedua (2NF)
Menghilangkan ketergantungan transitif
Bentuk Normal Ketiga (3NF)
Menghilangkan anomali-anomali hasil dari ketergantungan fungsional
Bentuk Normal Boyce-Codd (BCNF)
Menghilangkan Ketergantungan Multivalue
Bentuk Normal Keempat (4NF)
Menghilangkan anomali-anomali yang tersisa
Bentuk Normal Kelima
tugas 3 (tipe-tipe data pada data base)
Pemilihan tipe data merupakan suatu hal yang cukup penting dalam mengelola server. Salah satu sebabnya adalah berkaitan dengan ruang di harddisk dan memori yang akan “digunakan” oleh data-data tersebut.
Berikut ini akan diberikan tipe-tipe data yang didukung oleh MySQL yang terambil dari dokumentasi MySQL. Tipe - tipe data ini diberikan dalam bentuk yang siap dituliskan pada sintaks-sintaks MySQL, misalnya Create Table. Pada tipe-tipe data tersebut terdapat beberapa atribut yang memiliki arti sebagai berikut:
- M, menunjukkan lebar karakter maksimum. Nilai M maksimum adalah 255.
- D, menunjukkan jumlah angka di belakang koma. Nilai maksimum D adalah 30 tetapi dibatasi oleh nilai M, yaitu tidak boleh lebih besar daripada M-2.
- Atribut yang diberi tanda [ dan ] berarti pemakaiannya adalah optional.
- Jika atribut ZEROFILL disertakan, MySQL akan otomatis menambahkan atribut UNSIGNED.
- UNSIGNED adalah bilangan tanpa tanda di depannya (misalnya tanda negatif).
Inilah tipe-tipe data tersebut:
- TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang sangat kecil jangkauan nilainya, yaitu -128 hingga 127. Jangkauan unsigned adalah 0 hingga 255.
- SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang kecil jangkauan nilainya, yaitu -32768 hingga 32767. Jangkauan unsigned adalah 0 hinga 65535.
- MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Integer tingkat menengah. Jangkauan nilainya adalah -8388608 hingga 8388607. Jangkauan unsigned adalah 0 hingga 16777215.
- INT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang berukuran normal. Jangkauan nilainya adalah -2147483648 hingga 2147483647. Jangkauan unsigned adalah 0 hingga 4294967295.
- INTEGER[(M)] [UNSIGNED] [ZEROFILL]
Sama dengan INT.
- BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Integer berukuran besar. Jangkauan nilainya adalah -9223372036854775808 hingga 9223372036854775807. Jangkauan unsigned adalah 0 hingga 18446744073709551615.
- FLOAT(precision) [ZEROFILL]
Bilangan floating-point. Tidak dapat bersifat unsigned. Nilai atribut precision adalah <=24 untuk bilangan floating-point presisi tunggal dan di antara 25 dan 53 untuk bilangan floating-point presisi ganda.
- FLOAT[(M,D)] [ZEROFILL]
Bilangan floating-point presisi tunggal. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -3.402823466E+38 hingga -1.175494351E-38 untuk nilai negatif, 0, and 1.175494351E-38 hingga 3.402823466E+38 untuk nilai positif.
- DOUBLE[(M,D)] [ZEROFILL]
Bilangan floating-point presisi ganda. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk nilai negatif, 0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai positif.
- DOUBLE PRECISION[(M,D)] [ZEROFILL] dan REAL[(M,D)] [ZEROFILL]
Keduanya sama dengan DOUBLE.
- DECIMAL[(M[,D])] [ZEROFILL]
Bilangan floating-point yang “unpacked”. Tidak dapat bersifat unsigned. Memiliki sifat mirit dengan CHAR. Kata “unpacked'' berarti bilangan disimpan sebagai string, menggunakan satu karakter untuk setiap digitnya. Jangkauan nilai dari DECIMAL sama dengan DOUBLE, tetapi juga tergantung dai nilai atribut M dan D yang disertakan. Jika D tidak diisi akan dianggap 0. Jika M tidak diisi maka akan dianggap 10. Sejak MySQL 3.22 nilai M harus termasuk ruang yang ditempati oleh angka di belakang koma dan tanda + atau -.
- NUMERIC(M,D) [ZEROFILL]
Sama dengan DECIMAL.
- DATE
Sebuah tanggal. MySQL menampilkan tanggal dalam format 'YYYY-MM-DD'. Jangkauan nilainya adalah '1000-01-01' hingga '9999-12-31'.
- DATETIME
Sebuah kombinasi dari waktu (jam) dan tanggal. MySQL menampilkan waktu dan tanggal dalam format 'YYYY-MM-DD HH:MM:SS'. Jangkauan nilainya adalah '1000-01-01 00:00:00' hingga '9999-12-31 23:59:59'.
- TIMESTAMP[(M)]
Sebuah timestamp. Jangkauannya adalah dari '1970-01-01 00:00:00' hingga suatu waktu di tahun 2037. MySQL menampilkan tipe data TIMESTAMP dalam format YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, atau YYMMDD, tergantung dari nilai M, apakah 14 (atau tidak ditulis), 12, 8, atau 6.
- TIME
Tipe data waktu. Jangkauannya adalah '-838:59:59' hingga '838:59:59'. MySQL menampilkan TIME dalam format 'HH:MM:SS'.
- YEAR[(2|4)]
Angka tahun, dalam format 2- atau 4-digit (default adalah 4-digit). Nilai yang mungkin adalah 1901 hingga 2155, 0000 pada format 4-digit, dan 1970-2069 pada format 2-digit (70-69).
- CHAR(M) [BINARY]
String yang memiliki lebar tetap. Nilai M adalah dari 1 hingga 255 karakter. Jika ada sisa, maka sisa tersebut diisi dengan spasi (misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7 karakter, maka 3 karakter sisanya diisi dengan spasi). Spasi ini akan dihilangkan apabila data dipanggil. Nilai dari CHAR akan disortir dan diperbandingkan secara case-insensitive menurut default character set yang tersedia, kecuali bila atribut BINARY disertakan.
- VARCHAR(M) [BINARY]
String dengan lebar bervariasi. Nilai M adalah dari 1 hingga 255 karakter. Jika nilai M adalah 10 sedangkan data yang disimpan hanya terdiri dari 5 karakter, maka lebar data tersebut hanya 5 karakter saja, tidak ada tambahan spasi.
- TINYBLOB dan TINYTEXT
Sebuah BLOB (semacam catatan) atau TEXT dengan lebar maksimum 255 (2^8 - 1) karakter.
- BLOB dan TEXT
Sebuah BLOB atau TEXT dengan lebar maksimum 65535 (2^16 - 1) karakter.
- MEDIUMBLOB dan MEDIUMTEXT
Sebuah BLOB atau TEXT dengan lebar maksimum 16777215 (2^24 - 1) karakter.
- LONGBLOB dan LONGTEXT
Sebuah BLOB atau TEXT dengan lebar maksimum 4294967295 (2^32 - 1) karakter.
- ENUM('value1','value2',...)
Sebuah enumerasi, yaitu objek string yang hanya dapat memiliki sebuah nilai, dipilih dari daftar nilai 'value1', 'value2', ..., NULL atau nilai special "" error. Sebuah ENUM maksimum dapat memiliki 65535 jenis nilai.
- SET('value1','value2',...)
Sebuah set, yaitu objek string yang dapat memiliki 0 nilai atau lebih, yang harus dipilih dari daftar nilai 'value1', 'value2', .... Sebuah SET maksimum dapat memiliki 64 anggota.
tugas 2
1. bahasa sql
SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis international. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.
2.Perintah-Perintah SQL
-
CREATE DATABASE; Digunakan untuk membuat database
-
CREATE TABLE; Digunakan untuk membuat tabel. Hal yang harus diperhatikan adalah sebelum pembuatan tabel maka Database harus sudah ada dulu.
-
DROP; Untuk menghapus database atau tabel
-
ALTER; Digunakan untuk memodifikasi tabel, prosedur, triger, view, database
Query ALTER akan dibahas tersendiri dalam postingan lain di lain waktu bersama Query I NSERT.
-
INSERT; Digunakan untuk memanipulasi isi tabel. Menipulasi yang dimaksud adalah memasukkan data/basris baru dalam suatu tabel.
Query INSERT akan dibahas tersendiri dalam postingan lain di lain waktu bersama Query ALTER.
-
UPDATE; Digunakan untuk mengubah data pada sebuah tabel
-
DELETE; Seperti namanya, query ini berfungsi untuk menghapus data pada sebuah tabel.
-
DDL atau (Data Definition Language)
DDL merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database.
DDL juga merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal ini database dan table. Beberapa perintah dasar yang termasuk DDL ini antara lain :
-
CREATE
-
ALTER
-
RENAME
-
DROP
DML atau Data Manipulation Language
merupakan kumpulan perintah SQL yang digunakan untuk proses pengolahan isi data di dalam table seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database.
DML juga merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam DML antara lain :
-
-
SELECT
-
INSERT
-
UPDATE
-
DELETE
DCL atau Data Control Language
DCL (bukan BCL) merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :
-
GRANT
-
REVOKE
Data query language
Statemen Data-Query language (DQL), sering disebut juga dengan statemen retrieval, yang digunakan untuk mengambil data pada suatu tabel dan mengatur bagaimana data tersebut ditampilkan dalam aplikasi. Reserved word SELECT merupakan verb yang paling umum digunakan dalam DQL ( bahkan dalam seluruh statemen SQL). Reserved word lain dalam kategori ini yang umum digunakan adalah WHERE, ORDER BY, GROUP BY dan HAVING. Reserved word ini biasanya digunakan bersama dengan kategori lain dalam statemen SQL.
tugas 1
Pengertian Database
- Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik untuk memperoleh informasi dari basis data tersebut.
- Database adalah representasi kumpulan fakta yang saling berhubungan disimpan secara bersama, untuk memenuhi berbagai kebutuhan.
- Database merupakan sekumpulan informasi yang saling berkaitan pada suatu subjek tertentu untuk tujuan tertentu pula.
- Database adalah susunan record data operasional lengkap dari suatu organisasi atau perusahaan, yang diorganisir dan disimpan secara terintegrasi dengan menggunakan metode tertentu sehingga mampu memenuhi informasi yang optimal yang dibutuhkan olehpara pengguna.
Aplikasi Berbasis File
Aplikasi ini merupakan aplikasi untuk mengolah data menggunakan data base mysql, dan memanfaatkan php my admin.
Langkah awal adalah menciptakan database menggunakan php my admin.
Pada latihan ini perlu adanya sebuah database dengan table yang akan digunakan untuk menyimpan data mahasiwa, dimana tabel ini memiliki 3 field. yaitu NIM (varchar(12)) sebagai primary key, Nama (varchar(40)) dan Alamat (varchar(100)).
Setelah tabel sudah ada, sekarang yang diperlukan diperhatikan adalah kode php untuk koneksi ke database.
DBMS merupakan software yang digunakan untuk membangun suatu sistem basis data yangsempurna”. DBMS harus dapat mengatur basis data tersebut sehingga dapat tersimpan dengan baik tanpa menimbulkan kekacauan, dapat dipakai oleh banyak user sesuai dengan kepentingan masing-masing, melindungi dari gangguan pihak-pihak yang tidak berwenang.
Berdasarkan orientasi pemakainya, kita dapat mengelompokkan DBMS dalam 2 katagori, yaitu:
I. DBMS yang berorientasi untuk satu atau sedikit pemakai
MS-Access, dBase/Clipper, FoxBase, Borland-Paradox merupakan contoh-contoh DBMS yang lebih diorientasikan untuk satu pemakai dan karena itu dapat dengan mudah dipasang di komputer pribadi (Personal Computer/PC).MS
1. MICROSOFT ACCESS
Developer : MicrosoftMicrosoft Access atau Microsoft Office Access adalah program aplikasi dari Microsoft yang ditujukan untuk kalangan rumahan atau perusahaan kecil menengah karena kapasitas datanya sangat terbatas. Microsoft Access menggunakan mesin basis data Microsoft Jet Database Access Engine. Untuk instalasinya membutuhkan space di hardisk yang lumayan besar. Engine ini hanya bisa dijalankan di lingkup sistem operasi Windows saja. Untuk keamananya tidak begitu bisa dihandalkan walaupun sudah mengenal konsep relationship.
Kelebihan dan Kekurangan :
• Microsoft Access kurang begitu bagus jika diakses melalui jaringan sehingga aplikasi-aplikasi yang digunakan oleh banyak pengguna cenderung menggunakan solusi sistem manajemen basis data yang bersifat klien atau server.
• Salah satu keunggulan Microsoft Access dilihat dari perspektif programmer adalah kompatibilitasnya dengan bahasa pemrograman Structured Query Language (SQL). Para pengguna dapat mencampurkan dan menggunakan kedua jenis bahasa tersebut (VBA dan Macro) untuk memprogram form dan logika dan juga untuk mengaplikasikan konsep berorientasi objek.2. MICROSOFT SQL SERVER
Developer : Microsoft
Link :www.microsoft.com/sql
Macam Edisi : SQL Server Compact Edition (SQL CE), SQL Server Express Edition, SQL Server Workgroup Edition, SQL Server Standart Edition, SQL Server Enterprise Edition, SQL Server Developer Edition.Microsoft SQL Server adalah program Sistem Manajemen Dasis Data Relasional. Susunan dari Microsoft SQL Server dibagi menjadi tiga komponen. SQL OS yang melakukan layanan utama pada SQL Server, misalnya mengatur aktifitas, pengaturan memori, dan pengaturan Input/Output. Relational Engine yang bekerja sebagai penghubung komponen database, tabel, query, dan perintah tersimpan dan Protocol Layer yang mengatur fungsi-fungsi SQL Server.
Kekurangan :
• Hanya dapat diimpelementasikan pada 1 unit server, jika terdapat tambahan server maka hanya akan berfungsi sebagai pasif / standby server (tidak memiliki kemampuan Technology Cluster Server seperti halnya pada DMBS Oracle).
• Hanya bisa berjalan pada satu platform system operasi yaitu Microsoft Windows.
• Merupakan software berlisensi dan berharga mahal untuk perusahaan skala kecil dan menengah.
Kelebihan :
• Cocok untuk perusahaan dengan skala kecil, menengah, dan besar sehingga mampu untuk mengolah data dengan jumlah yang besar.
• Memiliki kemampuan untuk management user dan tiap user bisa diatur hak akses terhadap suatu database oleh database administrator.
• Untuk diterapkan pada pembangunan suatu program aplikasi, akan mudah dalam melakukan koneksi dengan computer client yang pembangunan aplikasinya menggunakan software yang sama platform dengan MS-SQL, misalnya Microsoft Visual Basic.
• Memiliki tingkat pengamanan / security data yang baik.
• Memiliki kemampuan untuk back-up data, rollback data, dan recovery data.
• Memiliki kemampuan untuk membuat database mirroring dan clustering.3. ORACLE
Developer : Oracle CorporationOracle adalah relational database management system (RDBMS) untuk mengelola informasi secara terbuka, komprehensif dan terintegrasi. Oracle Server menyediakan solusi yang efisien dan efektif karena kemampuannya dalam hal sebagai berikut:
• Dapat bekerja di lingkungan client/server (pemrosesan tersebar)
• Menangani manajemen space dan basis data yang besar
• Mendukung akses data secara simultan
• Performansi pemrosesan transaksi yang tinggi
• Menjamin ketersediaan yang terkontrol
• Lingkungan yang tereplikasi
Kekurangan:
• Merupakan software DMBS yang paling mahal, paling rumit, dan paling sulit untuk dipelajari.
• Membutuhkan spesifikasi hardware yang tinggi untuk dapat menjalankan software DMBS Oracle supaya berjalan dengan stabil.
• Hanya diperuntukan bagi perusahaan berukuran besar, dan tidak cocok untuk perusahaan kecil maupun menengah.
Kelebihan :
• Merupakan software DBMS yang handal dan memiliki kemampuan yang tinggi.
• Dapat menangani jumlah data dalam ukuran yang besar.
• Dapat mengolah data dalam ukuran besar dan mengolahnya dengan cepat sehingga didapatkan informasi yang akurat sesuai permintaan pengguna/user.
• Memiliki kemampuan akan fleksibilitas dan skalabilitas yang dapat memenuhi tuntutan akan data dan informasi yang bervolume besar dan terus-menerus bertambah besar.
• Memiliki kemampuan Technology Cluster Server, dimana jika terdapat lebih dari satu unit server misalnya 100 unit server maka Oracle dapat menjadikan 100 unit server tersebut aktif bekerja bersama sebagai 100 aktif server.
• Memiliki kemampuan untuk management user dan tiap user bisa diatur hak akses terhadap suatu database oleh database administrator.
• Bisa berjalan pada lebih dari satu platform system operasi.4. MySQL
Developer : MySQL AB
Versi Terakhir : 5.0.41 (Mei 2007)
Link :www.mysql.comMy SQL adalah perangkat lunak sistem manajemen basis data yang diciptkan untuk dapat dilakukan instalasi secara gratis (open source). Hingga saat ini MySQL telah lebih dari 6 juta instalasi.
Kekurangan :
• Tidak cocok untuk menangani data dengan jumlah yang besar, baik untuk menyimpan data maupun untuk memproses data.
• Memiliki keterbatasan kemampuan kinerja pada server ketika data yang disimpan telah melebihi batas maksimal kemampuan daya tampung server karena tidak menerapkan konsep Technology Cluster Server.
Kelebihan :
• Free (bebas didownload)
• Stabil dan tangguh
• Fleksibel dengan berbagai pemrograman
• Security yang baik
• Dukungan dari banyak komunitas
• Kemudahan management database
• Mendukung transaksi
• Perkembangan software yang cukup cepat.