Basis data adalah kumpulan data yang saling berhubungan secara logis dan didesain untuk mendapatkan data yang dibutuhkan oleh suatu organisasi (Indrajani, 2015).
Basis data (database) adalah sebuah kumpulan informasi yang disimpan di dalam komputer dan dapat diperiksa, diolah, atau dimanipulasi secara sistematis menggunakan program komputer. Istilah “basis” mengacu pada gudang atau tempat penyimpanan, sedangkan “data” merujuk pada fakta-fakta yang dikumpulkan. Dengan menggunakan basis data, pengguna dapat menyimpan informasi dalam media lain dan mengaksesnya kembali ketika diperlukan.
Komponen-komponen dari basis data terdiri dari:
Perangkat keras (Hardware) : Merupakan komponen fisik yang terdiri dari komputer, server, penyimpanan data, dan perangkat keras lainnya yang digunakan untuk menyimpan dan mengakses basis data.
Sistem Operasi (Operating System) : Merupakan perangkat lunak yang mengelola sumber daya perangkat keras dan menyediakan lingkungan yang diperlukan untuk menjalankan basis data.
Basis Data (Database) : Merupakan kumpulan data yang tersimpan di dalam komputer dan terorganisir dalam suatu struktur tertentu, seperti tabel, relasi, atau objek, untuk memudahkan pengaksesan dan pengelolaan data.
Sistem Manajemen Basis Data (DBMS): Merupakan perangkat lunak yang digunakan untuk mengelola, mengatur, dan mengontrol basis data. DBMS menyediakan antarmuka yang memungkinkan pengguna untuk berinteraksi dengan basis data, melakukan operasi seperti penyimpanan, pengambilan, pembaruan, dan penghapusan data.
Pengguna (User): Merupakan individu atau entitas yang menggunakan basis data. Pengguna dapat memiliki peran yang berbeda, seperti pengguna akhir yang menggunakan aplikasi untuk mengakses dan memanipulasi data, atau administrator basis data yang bertanggung jawab untuk mengatur dan mengelola basis data.
Aplikasi: Merupakan perangkat lunak lain yang digunakan bersama dengan basis data untuk menyediakan fungsionalitas tambahan. Aplikasi ini dapat berupa program khusus yang dibangun untuk keperluan tertentu atau aplikasi umum yang menggunakan basis data sebagai sumber data mereka.
MySQL diciptakan oleh seorang programer asal Swedia yang bernama Michael “Monty” Widenius pada tahun 1995.
MySQL adalah salah satu Relational Database Management System (RDBMS) yang menggunakan bahasa pemrograman SQL (Structured Query Language) sebagai bahasa standarnya dan bersifat open sources dengan dua bentuk lisensi, yaitu free software (bebas diakses secara gratis) dan shareware (penggunanya terbatas). Lisensi MySQL yang biasa kita gunakan adalah MySQL free software yang memiliki lisensi GNU (General Public Licence), sehingga dapat digunakan untuk keperluan pribadi ataupun untuk komersial secara gratis. MySQL biasa digunakan untuk menyimpan berbagai data dalam database yang data-datanya dapat dimanipulasi sesuai keperluan. Manipulasi data tersebut berupa menambah, mengubah dan menghapus data yang berada di dalam database.
Database MySQL memiliki beberapa kelebihan dibandingkan dengan database lainnya, yaitu:
Open Source : MySQL bersifat gratis dan dapat digunakan oleh siapa saja.
Mendukung bahasa pemrograman lain : MySQL bisa melakukan integrasi dengan bahasa pemrograman lain seperti R, Phyton, PHP, JavaScript dll.
Tidak membutuhkan RAM yang besar : MySQL dapat digunakan pada spesifikasi hardware yang rendah.
Multi-user : MySQL dapat digunakan secara bersamaan oleh beberapa user.
Keamanan : MySQL memiliki sistem keamanan yang baik dengan lebih dari satu lapisan keamanan.
Mendukung berbagai macam data : MySQLmendukung berbagai macam data, mulai dari integer, timestamp, text, date, character, float dll.
Struktur tabel fleksibel : MySQL memiliki struktur tabel yang mudah dipakai dan fleksibel.
Seperti software pada umumnya, MySQL juga memiliki beberapa kekurangan, yaitu:
Kurang mampu untuk mengelola database dalam jumlah besar : MySQL dikembangkan untuk ramah dengan perangkat yang memiliki spesifikasi rendah.
Kurang cocok untuk aplikasi game dan mobile : Kebanyakan pengembang game maupun aplikasi mobile tidak menggunakan MySQL karena database ini masih kurang bagus untuk mengembangkan sistem aplikasi tersebut.
Kurang bagus dari segi technical support : MySQL tidak memiliki technical support untuk komunitas, sedangkan pengguna Enterprise tersedia technical support dan berbayar.
Create Database : Digunakan untuk membuat database baru
Create Table : Digunakan untuk membuat tabel data baru dalam sebuah database.
Insert Into : Digunakan untuk menambahkan data baru di tabel database.
Select : Digunakan untuk memilih table dari database.
Update : Digunakan untuk mengubah/memperbarui data di tabel database.
Where : Digunakan untuk memfilter data pada perintah Select
ORDER BY: Menentukan kolom yang menjadi dasar pengurutan.
ASC: Untuk pengurutan menaik (ascending). Ini adalah pengurutan default, dapat diabaikan jika ingin menaik.
DESC: Untuk pengurutan menurun (descending)
JOIN: Kata kunci untuk menggabungkan tabel. ON: Menentukan kondisi penggabungan, yaitu kolom yang menghubungkan kedua tabel
Inner Join
INNER JOIN adalah jenis join dalam SQL yang digunakan untuk menggabungkan data dari dua tabel berdasarkan kecocokan di antara kolom yang terkait. INNER JOIN hanya akan menampilkan baris-baris yang memiliki kecocokan di kedua tabel; baris yang tidak memiliki pasangan di tabel lain tidak akan ditampilkan
LEFT JOIN (atau LEFT OUTER JOIN) adalah jenis join dalam SQL yang digunakan untuk menggabungkan data dari dua tabel. LEFT JOIN akan mengembalikan semua baris dari tabel kiri (tabel pertama) dan hanya baris yang cocok dari tabel kanan (tabel kedua). Jika tidak ada kecocokan, kolom dari tabel kanan akan diisi dengan nilai NULL.
RIGHT JOIN (atau RIGHT OUTER JOIN) adalah jenis join dalam SQL yang mengembalikan semua baris dari tabel kanan (tabel kedua) dan hanya baris yang cocok dari tabel kiri (tabel pertama). Jika tidak ada kecocokan, kolom dari tabel kiri akan diisi dengan nilai NULL.
FULL OUTER JOIN adalah jenis join dalam SQL yang mengembalikan semua baris dari kedua tabel, baik yang memiliki kecocokan maupun yang tidak.
UNION menggabungkan hasil dari LEFT JOIN dan RIGHT JOIN untuk menghasilkan efek seperti FULL OUTER JOIN. Union Digunakan untuk menggabungkan hasil dari 2 atau lebih perintah Select.
Tipe data adalah suatu bentuk pemodelan data yang dideklarasikan pada saat melakukan pembuatan tabel. Tipe data akan mempengaruhi setiap data yang akan dimasukkan ke dalam tabel, data yang dimasukkan harus sesuai dengan tipe data yang dideklarasikan. di MySQL ada beberapa tipe data, yaitu:
Type Data | Keterangan |
---|---|
TINYINT | Ukuran 1 byte. Bilangan bulat terkecil, dengan jangkauan untuk bilangan bertanda: -128 s/d 127 dan untuk yang tidak bertanda : 0 s/d 255. Bilangan tak bertandai dengan kata UNSIGNED |
SMALLINT | Ukuran 2 Byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda : -32768 s/d 32767 dan untuk yang tidak bertanda : 0 s/d 65535 |
MEDIUMINT | Ukuran 3 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda : -8388608 s/d 8388607 dan untuk yang tidak bertanda : 0 s/d 16777215 |
INT | Ukuran 4 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda : -2147483648 s/d 2147483647 dan untuk yang tidak bertanda : 0 s/d 4294967295 |
INTEGER | Ukuran 4 byte. Sinonim dari int |
BIGINT | Ukuran 8 byte. Bilangan bulat terbesar dengan jangkauan untuk bilangan bertanda : -9223372036854775808 s/d 9223372036854775807 dan untuk yang tidak bertanda : 0 s/d 1844674473709551615 |
FLOAT | Ukuran 4 byte. Bilangan pecahan |
DOUBLE | Ukuran 8 byte. Bilangan pecahan |
DOUBLEPRECISION | Ukuran 8 byte. Bilangan pecahan |
REAL | Ukuran 8 byte. Sinonim dari DOUBLE |
DECIMAL (M,D) | Ukuran M byte. Bilangan pecahan, misalnya DECIMAL(5,2 dapat digunakan untuk menyimpan bilangan -99,99 s/d 99,99 |
NUMERIC (M,D) | Ukuran M byte. Sinonim dari DECIMAL, misalnya NUMERIC(5,2) dapat digunakan untuk menyimpan bilangan -99,99 s/d 99,99 |
Type Data | Keterangan |
---|---|
DATETIME | Ukuran 8 byte. Kombinasi tanggal dan jam, dengan jangkauan dari ‘1000-01-01 00:00:00’ s/d ‘9999-12-31 23:59:59’ |
DATE | Ukuran 3 Byte. Tanggal dengan jangkauan dari ‘1000-01-01’ s/d ‘9999-12-31’ |
TIMESTAMP | Ukuran 4 byte. Kombinasi tanggal dan jam, dengan jangkauan dari ‘1970-01-01 00:00:00’ s/d ‘2037’ |
TIME | Ukuran 3 byte. Waktu dengan jangkauan dari ‘839:59:59’ s/d ‘838:59:59’ |
YEAR | Ukuran 1 byte. Data tahun antara 1901 s/d 2155 |
Type Data | Keterangan |
---|---|
CHAR | Mampu menangani data hingga 255 karakter. Tipe data CHAR mengharuskan untuk memasukkan data yang telah ditentukan oleh kita. |
VARCHAR | Mampu menangani data hingga 255 karakter. Tipe data VARCHAR tidak mengharuskan untuk memasukkan data yang telah ditentukan oleh kita. |
TINYBLOB, TINYTEXT | Ukuran 255 byte. Mampu menangani data sampai 2^8-1 data. |
BLOB, TEXT | Ukuran 65535 byte. Type string yang mampu menangani data hingga 2^16-1 (16M-1) data. |
MEDIUMBLOB, MEDIUMTEXT | Ukuran 16777215 byte. Mampu menyimpan data hingga 2^24-1 (16M-1)data. |
LONGBLOB, LONGTEXT | Ukuran 4294967295 byte. Mampu menyimpan data hingga berukuran GIGA BYTE. Tipe data ini memiliki batas penyimpanan hingga 2^32-1 (4G-1) data. |
ENUM(‘nilai1’,‘nilai2’,…,‘nilaiN’) | Ukuran 1 atau 2 byte. Tergantung jumlah nilai enumerasinya (maksimum 65535 nilai) |
SET(‘nilai1’,‘nilai2’,…,‘nilaiN’) | 1,2,3,4 atau 8 byte, tergantung jumlah anggota himpunan (maksimum 64 anggota) |
Database Management System (DBMS) DBMS adalah perangkat lunak yang memungkinkan pemakai untuk mendefinisikan, mengelola, dan mengontrol akses ke basis data. DBMS yang mengelola basis data relational disebut dengan Relational DBMS (RDBMS).Contoh perangkat lunak yang termasuk DBMS: dBase, FoxBase, Rbase, Microsoft-Access, Borland Paradox / Borland Interbase, MS-SQL Server, Oracle, Informix, Sybase, MySQL, dll.
Structure Query Language (SQL) adalah bahasa standar basis data yang digunakan aplikasi atau pemakai untuk berinteraksi dengan basis data melalui DBMS.
SQL dibagi menjadi dua, yaitu:
Data Definision Language (DDL)
DDL adalah sebuah metode Query SQL yang berguna untuk mendefinisikan data pada sebuah Database, Query yang dimiliki DDL adalah :
Create : Digunakan untuk membuat Database dan Tabel
Drop : Digunakan untuk menghapus Tabel dan Database
Alter : Digunakan untuk melakukan perubahan struktur tabel yang telah dibuat, baik menambah field, mengganti nama field, ataupun menamakannya kembali dan menghapus field
Data Manipulation Language (DML)
DML adalah sebuah metode Query yang dapat digunakan apabila DDL telah terjadi, sehingga fungsi dari Query DML ini untuk melakukan pemanipulasian database yang telah dibuat. Query yang dimiliki DML adalah :
Insert : Digunakan untuk memasukkan data pada Tabel Database
Update : Digunakan untuk pengubahan terhadap data yang ada pada Tabel Database
Delete : Digunakan untuk penghapusan data pada Tabel Database
Data Control Languange (DCL)
DCL adalah sebuah metode Query SQL yang digunakan untuk memberikan hak otorisasi mengakses Database, mengalokasikan space, pendefinisian space, dan pengauditan penggunaan database. Query yang dimiliki DCL adalah :
Grant : Untuk mengijinkan user mengakses Tabel dalam Database
Revoke : Untuk membatalkan izin hak user, yang ditetapkan oleh perintah Grant
Commit : Mentapkan penyimpanan Database
Rollback : Membatalkan penyimpanan Database
Menurut Connolly dan Begg (2010:68-71), ada 5 komponen utama dari lingkungan DBMS: Hardware, Software, Data, Prosedur, dan People.
Hardware
DBMS dan aplikasinya memerlukan perangkat keras untuk dapat dijalankan.Perangkatkeras dapat terdiri dari single personal computer, single mainframe, atau sebuah jaringan computer.
Software
Komponen perangkat lunak terdiri dari perangkat lunak DBMS dan program aplikasidengan sistem operasi, didalamnya terdapat perangkat lunak jaringan apabila DBMSmembutuhkan sebuah jaringan untuk digunakan. Pada umumnya program aplikasi ditulisdalam bahasa pemrograman generasi ketiga (3GL) seperti ‘C’, C++, Java, Visual Basic,COBOL, Fortran, Pascal, atau bahasa pemrograman generasi keempat (4GL), sepertiSQL, yang juga terdapat pada bahasa pemrograman generasi ketiga.
Data
Data merupakan komponen penting dalam sebuah DBMS, terutama dari sudutpandang pengguna akhir. Data menghubungkan komponen mesin (Hardware) dengan manusia
Prosedur
Prosedur mengarah pada instruksi dan peraturan yang mengatur rancangan danpenggunaan dari basis data. Ini seperti mencakup instruksi-instruksi, yaitu:
Log on ke DBMS.
Menggunakan fasilitas DBMS program aplikasi tertentu.
Memulai dan mengakhiri DBMS.
Membuat duplikat back-up basis data.
Menangani kerusakan perangkat keras atau perangkat lunak.
Mengubah struktur table, mengatur ulang data antara banyak disk, meningkatkan kinerja atau penyimpanan arsip pada secondary storage
People
People merupakan komponen terakhir yang terlibat dengan sistem.Berikut terdapat beberapa tiperole atau peran yang terlibat dalam sebuah DBMS, yaitu :
Data Administrator (DA) bertanggung jawab dalam mengatur sumber data, meliputiperencanaan basis data, standar pengaturan dan pengembangan, kebijakan danprosedur maupun rancangan konseptual dan logika basis data.
Database Administrator (DBA) bertanggung jawab dalam realisasi fisik basis datameliputi rancangan physicalbasis data dan implementasi, keamanan, dan pengaturanintegritas, menjaga sistem operasional dan memastikan kinerja aplikasi untukkepuasan pengguna.
Mengurangi pengulangan data
Mencapai independensi data
Mengintegrasikan data beberapa file
Mengambil data dan informasi dengan cepat
Meningkatkan keamanan
Menurut Conolly dan begg (2010:80-81), Database Management System (DBMS) memiliki kekurangan, berikut ini merupakan kekurangan DBMS antara lain :
a. Kompleks
DBMS merupakan bagian dari perangkat lunak yang sangat kompleks.Kesalahan terhadap pengertian sistemakan megakibatkan rancangan keputusan yang buruk padasuatu organisasi sehingga perancang basis data dan pengembang basis data, databaseadministrator (DBA) serta end-userperlu mengerti tentang keuntungan fungsional DBMS terlebih dahulu.
b. Ukuran
Kompleksitas dan banyaknya kegunaan dari DBMS menjadikannya sebagaiperangkat lunak yang sangat besar, sehingga memerlukan tempat penyimpanan datayang besar dan juga membutuhkan memori yang cukup agar bisa berjalan secaraefisien.
c. Biaya
Biaya yang dikeluarkan untuk DBMS sangat bervariasi, tergantung dari lingkungandan kegunaan yang disediakan oleh DBMS tersebut.
d. Biaya tambahan untuk perangkat keras
Kebutuhan tempat penyimpanan data untuk DBMS dan basis data mungkinmengharuskan pembelian tempat khusus penyimpanan data tambahan.
e. Biaya Konversi
Dalam situasi tertentu, biaya untk DBMS dan perangkat keras tambahan dapatmenjadi penting dibanng dengan biaya konversi dari aplikasi yang sudah ada agar dapatberjalan di DBMS dan perangkat keras baru.
f. Performa
g. Kemungkinan gagal yang tinggi
Pemusatan dari sumber daya meningkatkan kerentanan sistemyang disebabkan olehsemua pemakai dan aplikasi bergantung pada ketersediaan dari DBMS, kegagalan darisalah satu komponen dapat membuat operasi terhent
Entity Relationship Diagram adalah salah satu alat penting dalam pengembangan sistem infromasi, khususnya dalma perancangan basis data. ERD membantu mengilustrasikan hubungan antara entitas-entitas dalam sebuah sistem, memfasilitasi pemahaman yang lebih baik tentang struktur data dan interaksi antar komponen. ERD adalah representasi visual dari struktur basis dayang yang menggambarkan entitas, atribut dan hubungan antar entitas tersebut. entitas dapat diartikan sebagai objek atau konsep yang dapat dibedakan dan memiliki data yang disimpan dalam basis data.
Sebelum mmebuat perancangan sistem yang tepat, harus terlebih dahulu mengetahui jenis model data yang digunakan. Karena model data tersebut dapat berpengaruh dalma pengembangan sistem.
Model Data Konseptual Adalah model data paling tinggi karena di dalamnya berisi data-data yang detail. Data konseptual ini dapat digunakan sebagai dasar untuk membuat satu atau lebih model data logis. Tujuan dari pengembangan model data konseptual adalah untuk memberikan gambaran yang jelas mengenaik struktur database yang terdiri dari entitas dan relasi antar setiap entitas.
Model Data Logis Adalah pengembangan dari model data konseptual, itu sebabnya dalam proses pembuatannya model data ini dibuat lebih rinci dari model data konseptual dan dibuat setelah model data konseptual selesai dibuat. Model ini digunakan untuk menambah infromasi secara eksplisit kedalam unsur-unsur model konseptual.
Model Data Fisik Adalah pengembangan dari masing-masing model data logis. Model data ini biasanya digunakan untuk merancang sebuah database.
1. Strong entity set yaitu entity set yang satu atau lebih atributnya digunakan oleh entity set lain sebagai key.
Kardinalitas atau derajat relasi adalah jumlah maksimum entitas yang dapat berelasi pada entitas lainnya. Jika diberikan dua himpunan entitas (yaitu A dan B), maka kardinalitas relasinya dibedakan menjadi 4 jenis, yaitu:
Satu ke Satu (One to One), yang berarti satu entitas A berhubungan paling banyak satu dengan entitas B. Begitupun sebaliknya, satu entitas pada himpunan B berhubungan paling banyak satu dengan entitas A.
Satu ke Banyak (One to Many), yang berarti satu entitas A dapat berhubungan lebih dari satu dengan entitas B. Namun tidak berlaku sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A.
Banyak ke Satu (Many to One), yang berarti satu entitas A berhubungan paling banyak dengan satu entitas B. Namun tidak berlaku sebaliknya, dimana setiap entitas pada himpunan entitas B dapat berhubungan lebih dari satu dengan entitas A. Kardinalitas relasi Satu ke Banyak dan Kardinalitas relasi Banyak ke Satu dapat dianggap sama, karena tinjauan kardinalitas relasi selalu dapat dilihat dari dua sisi. Artinya, posisi himpunan entitas A dan himpunan entitas B dapat saja ditukar.
Banyak ke Banyak (Many to Many), yang berarti satu entitas A dapat berhubungan lebih dari satu dengan entitas B dan sebaliknya.
Berikut adalah tahapan dalam perancangan ERD: