21
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.
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.
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
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.
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
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 :
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 :
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 ber-relasi 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, ber-relasi paling banyak satu record juga dengan entity A. Dalam diagram E-R, relasi ini disimbolkan dengan angka 1.
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..
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 himpunan-himpunan entity yang ada beserta kunci tamu (foreign key)-nya.
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 lebih dari satu atribute disebut kunci gabungan/composite key.
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.
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
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.
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.
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.
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<kriteria ; d. DISTINCT
Dapat digunakan untuk menghilangkan record-record yang sama . SELECT DISTINCT kolom2 FROM kolom1;
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.
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 ;