BAB II LANDASAN TEORI
Pada bab landasan teori akan diterangkan teori- teori yang berhubungan dengan laporan ini. 2.1 Pengertian Database Beberapa definisi tentang Database menurut para ahli: a. Menurut Gordon C. Everest : Database
adalah
koleksi
atau
kumpulan
data
yang
mekanis,
terbagi/shared, terdefinisi secara Formal dan dikontrol terpusat pada organisasi. b. Menurut C.J. Date : Database adalah koleksi “data operasional” yang tersimpan dan dipakai oleh sistem aplikasi dari suatu organisasi.
Data input adalah data yang masuk dari luar sistem
Data output adalah data yang dihasilkan sistem
Data operasional adalah data yang tersimpan pada sistem
c. Menurut Toni Fabbri : Database adalah sebuah sistem file-file yang terintegrasi yang mempunyai minimal primary key untuk pengulangan data. d. Menurut S. Attre : Database adalah koleksi data-data yang saling berhubungan mengenai suatu organisasi / enterprise dengan macam-macam pemakaiannya.
21
13
Jadi Basis data (Database) dapat dipahami sebagai suatu kumpulan dari data yang saling berhubungan dengan yang lainnya, tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. Database bisa diartikan sebagai suatu file Database yang memiliki tabel, record, field, index, query, filter dan view. Berikut adalah definisi umum isi sebuah file Database. a. Tabel Adalah sekelompok record data, masing-masing berisi inFormasi yang sejenis. b. Record Adalah entri tunggal dalam tabel. Bisa saja disebut sebagai baris mengingat sebuah tabel terdiri dari baris (record) dan kolom (field). c. Field Adalah item tertentu dalam tabel. Bisa disebut sebagai kolom. d. Index Adalah field kunci yang ditujukan ke suatu record yang spesifik serta diurutkan dalam urutan tertentu. e. Query Adalah perintah SQL yang dirancang untuk memanggil kelompok record tertentu dari satu tabel/lebih.
14
f. View Merupakan tabel virtual yang berisi record dari berbagai tabel. Fungsi utamanya untuk memudahkan kita mendapatkan data yang spesifik dari berbagai tabel. 2.2 Pengertian DBMS (Database Management System) Beberapa definisi tentang DBMS menurut para ahli: a. Menutut C.J. Date DBMS adalah merupakan software yang menghandel seluruh akses pada Database untuk melayani kebutuhan user. b. Menurut S, Attre DBMS adalah software, hardware, firmware dan procedure-procedure yang memanage Database. Firmware adalah software yang telah menjadi modul yang tertanam pada hardware (ROM). c. Menurut Gordon C. Everest DBMS adalah manajemen yang efektif untuk mengorganisasi sumber daya data.
Jadi DBMS merupakan software (dan hardware) yang khusus didesain untuk melindungi dan memanage Database atau dapat diartikan sebagai suatu sistem inFormasi yang mengintegrasikan kumpulan dari data yang saling berhubungan satu dengan yang lainnya dan membuatnya tersedia untuk beberapa
15
aplikasi yang bermacam-macam didalam suatu organisasi. Adapun Fungsi dari DBMS itu sendiri adalah :
Definisi data dan hubungannya
Memanipulasi data
Keamanan dan integritas data
Recovery/perbaikan dan concurency data
Data dictionary
Unjuk kerja / perFormance
Dari fungsi yang dijelaskan diatas maka dapat diambil kesimpulan bahwa dengan menggunakan DBMS kita dapat :
Mendefinisikan data dan hubungannya.
Mendokumentasikan struktur dan definisi data
Menggambarkan, mengorganisasikan dan menyimpan data untuk akses yang selektif/dipilih dan efisien.
Hubungan yang sesuai antara user dengan sumber daya data.
Perlindungan terhadap sumber daya data akan terjamin, dapat diandalkan, konsisten dan benar.
Memisahkan masalah Logical dan physical sehingga merubah implementasi Database secara fisik tidak menghendaki user untuk merubah maksud data (Logical).
Menentukan pembagian data kepada para user untuk mengakses secara concurent pada sumber daya data.
16
2.3 Terminologi Database
Gambar 2.1 Terminologi Database Keterangan : 1. ENTITY : adalah orang, tempat,kejadian, atau konsep yang inFormasinya direkam. 2. ATRIBUTE: setiap entity mempunyai atribute atau debutan untuk mewakili statu entity. Atribute juga disebut data eleven, data field, data item. 3. DATA VALUE : isi data/nilai, yaitu data aktual atau inFormasi yang disimpan pada tiap data atau atribute. 4. RECORD/TUPLE : Kumpulan elemen-elemen yang saling berkaitan menginFormasikan tentang entity secara lengkap. Satu record mewakili satu data atau inFormasi tentang suatu hal. Satu record terdiri dari field-field yang saling berhubungan untuk menunjukkan field tersebut dalam satu pengertian yang lengkap dan direkam satu record. 5. FILE : kumpulan record-record sejenis yang mempunyai panjang elemen yang sama, atribute yang sama, namun berbeda beda data valuenya. Dalam
17
satu file terdapat record-record yang sejenis, sama besar, sama bentuk, merupakan satu kumpulan entity yang seragam.
2.4 Perancangan Database Proses perancangan Database, terlepas dari masalah yang ditangani, dibagi menjadi 3 tahapan : 1. Perancangan Database secara konseptual ; Perancangan Database secara konseptual merupakan upaya untuk membuat model yang masih bersifat konsep . 2. Perancangan Database secara logis ; Perancangan Database secara logis merupakan tahapan untuk memetakan model konseptual ke model
Database
yang dipakai (model relasional,
hirarkis, atau jaringan). Namun sebagaimana halnya perancangan Database secara konseptual, perancangan ini tidak tergantung pada DBMS yang akan di pakai. Itulah sebabnya perancangan Database secara logis terkadang disebut pemetaan model data . 3. Perancangan Database secara fisis.
2.5 Teknik Perancangan Database Model Konseptual Pada perancangan model konseptual penekanan tinjauan dilakukan pada struktur data dan relasi antara file. Pendekatan yang dilakukan pada perancangan model konseptual adalah menggunakan model data relational. Terdapat dua buah teknik yaitu :
18
2.5.1
Teknik Entity Relationship
2.5.1.1 Diagram Entity Relationship (Diagram E-R) ERD adalah model konseptual yang mendeskripsikan hubungan antara penyimpanan (dalam DFD). ERD digunakan untuk memodelkan struktur data dan hubungan antar data. Dengan ERD, model dapat diuji dengan mengabaikan proses yang dilakukan. Diagram E-R digunakan untuk menggambarkan secara sistematis hubungan antar entity-entity yang ada dalam suatu sistem Database menggunakan simbol-simbol sehingga lebih mudah dipahami. Simbol-simbol yang boleh digunakan adalah :
Persegi Panjang, berfungsi untuk menyatakan suatu entity.
Elips, berfungsi untuk menyatakan attribute, jika diberi garis bawah menandakan bahwa attribute tersebut merupakan attribute/field kunci.
Belah Ketupat, menyatakan jenis relasi.
Garis, penghubungan antara relasi dengan entity dan antara entity dengan attribute. ERD pertama kali dideskripsikan oleh Peter Chen yang dibuat sebagai
bagian dari perangkat lunak CASE. Notasi yang digunakan dalam ERD dapat dilihat pada Tabel di bawah ini :
19
Gambar 2.2 Tabel Notasi ER-D Dalam hubungan antar entity, juga harus ditentukan derajat relasi antar entity. Derajat relasi menunjukkan jumlah maksimum record suatu entity berrelasi dengan record pada entity yang lainnya.
2.5.1.2
Kardinalitas Relasi
Berikut ini akan dijelaskan konsep Entity Relationship (Cardinality). a. Relasi Satu ke Satu (One to One) Artinya satu record pada entity A ber-relasi paling banyak satu record juga pada entity B, begitu juga sebaliknya, satu record pada entity B, berrelasi paling banyak satu record juga dengan entity A. Dalam diagram E-R, relasi ini disimbolkan dengan angka 1.
20
Contoh : Dalam proses belajar mengajar secara privat misalnya, seorang (satu) tutor hanya mengajar satu siswa, begitu juga sebaliknya, satu siswa hanya diajar oleh satu tutor.
b. Relasi Satu ke Banyak (One to Many) Artinya satu record pada entity A ber-relasi dengan beberapa record pada entity B, tapi tidak sebaliknya, setiap record pada entity B ber-relasi paling banyak satu record dengan entity A. Dalam diagram E-R, relasi ini disimbolkan dengan angka 1 untuk menyatakan satu dan huruf M atau N untuk menyatakan banyak. Contoh : Dalam proses belajar mengajar di sekolah dasar misalnya, satu orang guru mengajar beberapa (banyak) murid, tetapi satu kelas (beberapa murid) hanya di ajar oleh satu guru.
c. Relasi Banyak ke Satu (Many to One) Ini adalah kebalikan dari relasi satu ke banyak, dimana setiap record pada entity A hanya dapat ber-relasi paling banyak 1 record pada entity B, tapi tidak sebaliknya, satu record pada entity B dapat ber-relasi dengan beberapa record pada entity A.. Dalam diagram E-R, relasi ini disimbolkan dengan angka 1 untuk menyatakan satu dan huruf M atau N untuk menyatakan banyak..
21
Contoh : Dalam dunia akademik misalnya, beberapa (banyak) mahasiswa hanya mempunyai satu pilihan jurusan, sebaliknya satu jurusan dapat dipilih oleh beberapa (banyak) mahasiswa
d. Relasi Banyak ke Banyak (Many to Many) Artinya beberapa record pada entity A dapat ber-relasi dengan beberapa record juga pada entity B, begitu juga sebaliknya, beberapa record pada entity B dapat ber-relasi dengan beberapa record juga pada entity A.. Dalam diagram E-R, relasi ini disimbolkan dengan huruf M atau N untuk menyatakan banyak.. Contoh : Dalam hubungan antara mahasiswa dengan dosen pada perguruan tinggi, yaitu seorang seorang dosen mengajar banyak mahasiswa, sebaliknya seorang mahasiswa dapat diajar oleh beberapa dosen, sehingga terjadi hubungan banyak ke banyak.
2.5.1.3 Tahapan Membuat Diagram E-R
Mengidentifikasi dan menetapkan seluruh entity yang terlibat dalam sistem Database tersebut.
Menentukan attribute-attribute atau field dari masing-masing entity beserta kunci (key)-nya.
Mengidentifkasi dan menetapkan seluruh himpunan relasi diantara himpunanhimpunan entity yang ada beserta kunci tamu (foreign key)-nya.
Menentukan derajat relasi untuk setiap himpunan relasi.
22
2.5.2
Teknik Normalisasi Adalah proses pengelompokkan data elemen menjadi table-tabel yang
menunjukkan entity dan relasinya. Pada proses normalisasi selalu dilakukan pengujian Database pada beberapa kondisi, antara lain : a. menambah/insert b. menghapus/delete c. mengubah/update d. membaca/retrieve Bila ada kesulitan pada pengujian tersebut maka relasi tersebut dipecahkan pada beberapa tabel lagi atau dengan kata lain perancangan belumlah menghasilkan Database yang optimal. Beberapa konsep yang harus diketahui lebih dahulu yang berhubungan dengan normalisasi, yaitu : a. field/atribute kunci b. kebergantungan fungsi (functional dependency)
2.5.2.1 field/atribute kunci Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data dalam tabel secara unik. Macam-macamnya: a. Candidate Key/ kunci calon yaitu satu atribute atau satu set minimal atribut yang mengidentifikasi secara unik suatu kejadian spesifik dari entity. Jika satu kunci
kandidat
berisi
gabungan/composite key.
lebih
dari
satu
atribute
disebut
kunci
23
b. Primary Key/kunci primer yaitu satu atribut atau satu set minimal atribute yang tidak hanya mengidentifikasi secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap kejadian dari suatu entity. Setiap kunci kandidat punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entity yang ada. c. Alternate Key/kunci alternatif yaitu kunci kandidat yang tidak dipakai sebagai primary key. Tapi dipakai sebagai kunci pengurutan. d. Foreign Key/kunci tamu yaitu satu atribute yang melengkapi satu relationship yang menunjukkan ke induknya. Kunci tamu ditempatkan pad entity anak dan sama dengan kunci primary induk direlasikan.
2.5.2.2 Tingkatan Dalam Normalisasi Berikut ini merupakan langkah-langkah untuk menghasilkan struktur tabel yang normal diantaranya yaitu : a. Bentuk Unnormallized Bentuk unnormal adalah bentuk tabel dengan mencantumkan semua field data yang ada. b. Bentuk Normal Pertama / 1 NF (First Normal Form) Suatu relasi ada dalam kondisi First Normal Form (1NF) jika dan hanya jika semua domain yang tercakup terdiri hanya atomic value, misalnya tidak ada pengulangan grup (domain-domain) dalam suatu tuple. Keuntungan dari 1NF dibanding (UNRs) adalah pada bentuk penyederhanaan representasi dan kemudahan dalam pengembangan menggunakan suatu query language.
24
Kekurangannya adalah kebutuhan terhadap duplikasi data. Sebagian besar sistem relasi (tidak semua) membutuhkan suatu relasi dalam bentuk 1NF. c. Bentuk Normal Kedua / 2 NF (Second Normal Form) Suatu superkey adalah suatu himpunan dari satu atau lebih attribute, yang mana, dimana diambil secara khusus yang memungkinkan kita untuk mengidentifikasikan secara unik satu entitas atau relasi. Suatu Candidate key adalah suatu subset dari attribut-attribut pada superkey yang juga merupakan superkey dan tidak reducible ke superkey yang lain. Suatu primary key dipilih dari himpunan candidate key untuk digunakan pada suatu index untuk relasi yang bersangkutan. Kepemilikan dari satu atau beberapa attribute yang dapat didefinisikan secara unik dari nilai satu atau beberapa attribute disebut functional dependency. Suatu relasi adalah dalam posisi second normal Form (2NF) jika dan hanya jika relasi tersebut juga dalam 1NF dan setiap nonkey attribute tergantung penuh pada primary key-nya. 2NF membutuhkan bahwa FD apapun didalam relasi harus berisi semua komponen dari primary key sebagai determinant, baik secara langsung atau transitif. d. Bentuk Normal Ketiga / 3 NF (Third Normal Form) Suatu relasi dalam Third Normal Form (3NF) jika dan hanya jika relasi tersebut dalam
NF dan setiap non key attribute adalah nontransitive
dependent pada primary key. e. Boyce-Codd Normal Form (BCNF) BCNF adalah suatu bentuk yang lebih kuat dari normalisasi ke tiga. 3NF equivalent dengan perkataan bahwa untuk setiap nontrivial FD X A, dimana X
25
dan A merupakan simple atau composite attribut, satu dari dua kondisi harus dipenuhi.X adalah superkey, atau A adalah prime attribute. BCNF mengelimisasi kondisi kedua dari 3NF.
2.6
MySQL MySQL adalah perangkat lunak Relational Database Management System
(RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakannya, tapi tidak boleh dijadikan produk turunan yang bersifat Closed Source atau komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam Database sejak lama, yaitu SQL (Structur 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. Kehandalan 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 dibanding Database server lainnya dalam query data. Sebagai Database server yang memiliki konsep Database modern, MySQL memiliki banyak keistimewaan. Berikut ini beberapa keistimewaan yang dimiliki oleh MySQL.
26
a.
Portability MySQL dapat berjalan stabil pada berbagai system operasi seperti Windows, Linux, FreeBSD, Mac OS X Server, dan lain-lain.
b.
Open Source MySQL didistribusikan secara Open Source, sehingga dapat digunakan secara bebas.
c.
Multi-user MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah. Hal ini memungkinkan sebuah Database server MySQL dapat diakses client secara bersamaan.
d.
PerFormance Tuning MySQL memiliki kecepatan yang tinggi dalam menangani query, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
e.
Column Types MySQL memiliki tipe kolom yang sangat kompleks, seperti signed/unsigned integer, float, double, char, varchar, text, blob, date, time, timestamp, year, set dan enum.
f.
Command dan Function MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah SELECT dan WHERE dalam query.
27
g.
Security MySQL memiliki lapisan lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan system perizinan yang mendetail serta password terenkripsi.
h.
Scalability dan Limits MySQL mampu menangani Database dengan skala besar, dengan jumlah records lebih dari 50 juta dan 60 juta table serta 5 miliar baris. Selain itu, batas indeks yang dapat ditampung mencapai 32 indeks pada setiap tabelnya.
i.
Connectivity MySQL dapat melakukan koneksi dengan client menggunakan protocol TCP/IP, Unix Socet (UNIX), atau Named Pipes (NT).
j.
Localization Deteksi pesan kesalahan pada client dengan menggunakan lebih dari 20 bahasa
k.
Interface Interface terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface)
l.
Client dan Tools Dilengkapi dengan berbagai Tool yang dapat digunakan untuk administrasi Database, dan pada setiap tool yang ada disertakan petunjuk online.
28
2.6.1
Perintah SQL Perintah-perintah SQL yang sering digunakan untuk kebutuhan
web
Database diantaranya : a. INSERT Digunakan untuk mengisi data atau menambahkan record pada suatu tabel . INSERT INTO nama_tabel (kolom1,kolom2..) VALUES (nilai1, nilai2 ;).. b. SELECT Digunakan untuk melihat data dari suatu atau beberapa tabel. SELECT kolom-kolom ; FROM nama_tabel ; Untuk melihat seluruh isi kolom dari suatu tabel digunakan query SELECT .* SELECT * FROM nama_tabel ; c. WHERE Digunakan untuk menyaring hasil query sehingga record yang dikeluarkan hanyalah record yang sesuai dengan yang diinginkan . SELECT kolom1,kolom2 FROM kolom1 WHERE kolom2
29
e. BETWEEN Digunakan untuk membatasi suatu kolom berada pada suatu batas nilai tertentu . SELECT
kolom1,kolom2,kolom3
FROM
kolom1
WHERE
kolom2
BETWEEN .. AND ;.. f. LIKE Digunakan untuk pencarian data yang memiliki pola tertentu . SELECT kolom1,kolom2 FROM kolom1 WHERE kolom1 LIKE ‘A%’; g. ORDER BY Digunakan untuk mensortir data hasil query sesuai dengan kebutuhan . SELECT kolom1,kolom2 FROM kolom1 ORDER BY kolom1 ; Untuk mensortir dengan urutan terbalik, digunakan keyword
tambahan
DESC .Sedangkan untuk urutan yang teratur digunakan keyword ASC . SELECT kolom1,kolom2 FROM kolom1 ORDER BY kolom1 DESC ; h. DELETE Digunakan untuk menghapus suatu record dengan kriteria tertentu . DELETE FROM nama_tabel WHERE criteria ; Untuk menghapus record pada suatu tabel, digunakan perintah DELETE tanpa menentukan kriteria.
30
DELETE FROM nama_tabel ; i. UPDATE Digunakan untuk memodifikasi nilai kolom dari suatu record . UPDATE nama_tabel SET nama_kolom1=nilai_baru1,nilai_kolom2=nilai_baru2 .., WHERE criteria ; (Peranginangin Kasiman, 2006).