Download BAB 8 MEMBUAT BASIS DATA DENGAN MySQL

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
BAB 8
MEMBUAT BASIS DATA DENGAN
MySQL
Tujuan Pembelajaran:
Memahami kaidah Pembuatan Basis Data menggunakan MySQL
8.1
Pengenalan MySQL
8.2
Bahasa Pemrograman SQL
8.3
Pemrograman SQL Lanjut dengan MySQL
Bab 8 Membuat Basis Data dengan MySQL
VII- 1
8.1. Pengenalan MySQL
MySQL merupakan salah satu DBMS yang bersifat freeware, sehingga menjadi
popular dikalangan pengguna database. Selain karena Free MySQL juga
merupakan DBMS yang relatif ringan dan mudah digunakan. Ada beberapa
software yang bisa digunakan untuk menjalankan service MySQL, diantaranya
WAMP, PhpTriad dan XAMPP. XAMPP merupakan yang paling popular karena
masih terus dikembangkan sampai saat ini. XAMPP merupakan program paket
yang didalamnya terdapat beberapa software yang digabungkan menjadi satu.
Dalam XAMPP sendiri didalamnya terdapat 5 software yang berbeda (MySql,
Apache, FileZilla, Mercury dan Tomcat). Jadi ketika menginstall XAMPP kita
tidak perlu lagi menginstall Apache dan MySQL secara terpisah.
8.2. Bahasa Pemrograman SQL
Dalam dunia basis data dikenal bahasa pemrograman Structured Query
Languange (SQL). SQL adalah sebuah bahasa yang digunakan untuk mengakses
data dalam basis data relasional. 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.
Sejarah
Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama Jhonny
Oracle yang membahas tentang ide pembuatan basis data relasional pada bulan
Juni 1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar
untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi
nama SEQUEL (Structured English Query Language).
Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data
relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum
mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL.
Implementasi basis data relasional dikenal dengan System/R.
VII- 2
Bab 8 Membuat Basis Data dengan MySQL
Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server
basis data populer yang bernama sama dengan nama perusahaannya. Dengan
naiknya kepopuleran John Oracle, maka SQL juga ikut populer sehingga saat ini
menjadi standar de facto bahasa dalam manajemen basis data.
Standarisasi
Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya
standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar
tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada
tahun 1992. Versi terakhir dikenal dengan SQL92. Pada tahun 1999 dikeluarkan
standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan
implementasi mereferensi pada SQL92.
Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92.
Hal ini disebabkan masing-masing server memiliki dialek masing-masing.
Pemakaian Dasar
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language
(DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML
berbeda untuk tiap sistem manajemen basis data, namun secara umum
implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI.
Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada
kebanyakan sistem manajemen basis data.
8.3. Pemrograman SQL Lanjut dengan MySQL
MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional
(RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General
Public License). Setiap pengguna dapat secara bebas menggunakan MySQL,
namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk
turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah
satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured
Query Language). SQL adalah sebuah konsep pengoperasian basis data, terutama
Bab 8 Membuat Basis Data dengan MySQL
VII- 3
untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan
pengoperasian data dikerjakan dengan mudah secara otomatis.
Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja
pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat
oleh pengguna maupun program-program aplikasi yang memanfaatkannya.
Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional
maupun operasi basisdata non-transaksional. Pada modus operasi nontransaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja
dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun pada
modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang
tersimpan, karenanya modus non-transaksional hanya cocok untuk jenis aplikasi
yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web
(wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk
bisnis sangat disarankan untuk menggunakan modus basisdata transaksional,
hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional
tidak secepat unjuk kerja pada modus non-transaksional.
MySQL pada awalnya diciptakan pada tahun 1979, oleh Michael "Monty"
Widenius, seorang programmer komputer asal Swedia. Monty mengembangkan
sebuah sistem database sederhana yang dinamakan UNIREG yang menggunakan
koneksi low-level ISAM database engine dengan indexing. Pada saat itu Monty
bekerja pada perusahaan bernama TcX di Swedia.
TcX pada tahun 1994 mulai mengembangkan aplikasi berbasis web, dan
berencana menggunakan UNIREG sebagai sistem database. Namun sayangnya,
UNIREG dianggagap tidak cocok untuk database yang dinamis seperti web.
TcX kemudian mencoba mencari alternatif sistem database lainnya, salah satunya
adalah mSQL (miniSQL). Namun mSQL versi 1 ini juga memiliki kekurangan,
yaitu tidak mendukung indexing, sehingga performanya tidak terlalu bagus.
VII- 4
Bab 8 Membuat Basis Data dengan MySQL
Dengan tujuan memperbaiki performa mSQL, Monty mencoba menghubungi
David Hughes (programmer yang mengembangkan mSQL) untuk menanyakan
apakah ia tertarik mengembangkan sebuah konektor di mSQL yang dapat
dihubungkan dengan UNIREG ISAM sehingga mendukung indexing. Namun saat
itu Hughes menolak, dengan alasan sedang mengembangkan teknologi indexing
yang independen untuk mSQL versi 2.
Dikarenakan penolakan tersebut, David Hughes, TcX (dan juga Monty) akhirnya
memutuskan untuk merancang dan mengembangkan sendiri konsep sistem
database baru. Sistem ini merupakan gabungan dari UNIREG dan mSQL (yang
source codenya dapat bebas digunakan). Sehingga pada May 1995, sebuah
RDBMS baru, yang dinamakan MySQL dirilis.
David Axmark dari Detron HB, rekanan TcX mengusulkan agar MySQL di ‘jual’
dengan model bisnis baru. Ia mengusulkan agar MySQL dikembangkan dan dirilis
dengan gratis. Pendapatan perusahaan selanjutnya di dapat dari menjual jasa
“support” untuk perusahaan yang ingin mengimplementasikan MySQL. Konsep
bisnis ini sekarang dikenal dengan istilah Open Source.
Pada tahun 1995 itu juga, TcX berubah nama menjadi MySQL AB, dengan
Michael Widenius, David Axmark dan Allan Larsson sebagai pendirinya. Titel
“AB” dibelakang MySQL, adalah singkatan dari “Aktiebolag”, istilah PT
(Perseroan Terbatas) bagi perusahaan Swedia.
MySQL memiliki beberapa keistimewaan, antara lain :
•
Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi
seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan
masih banyak lagi.
•
Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai
perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat
digunakan secara gratis.
Bab 8 Membuat Basis Data dengan MySQL
VII- 5
•
Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam
waktu yang bersamaan tanpa mengalami masalah atau konflik.
•
'Performance tuning', MySQL memiliki kecepatan yang menakjubkan
dalam menangani query sederhana, dengan kata lain dapat memproses
lebih banyak SQL per satuan waktu.
•
Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya,
seperti signed / unsigned integer, float, double, char, text, date, timestamp,
dan lain-lain.
•
Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh
yang mendukung perintah Select dan Where dalam perintah (query).
•
Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level
subnetmask, nama host, dan izin akses user dengan sistem perizinan yang
mendetail serta sandi terenkripsi.
•
Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam
skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60
ribu tabel serta 5 miliar baris. Selain itu batas indeks yang dapat
ditampung mencapai 32 indeks pada tiap tabelnya.
•
Konektivitas.
MySQL
dapat
melakukan
koneksi
dengan
klien
menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes
(NT).
•
Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan
menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa
Indonesia belum termasuk di dalamnya.
•
Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai
aplikasi dan bahasa pemrograman dengan menggunakan fungsi API
(Application Programming Interface).
•
Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)
yang dapat digunakan untuk administrasi basis data, dan pada setiap
peralatan yang ada disertakan petunjuk online.
•
Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam
menangani ALTER TABLE, dibandingkan basis data lainnya semacam
PostgreSQL ataupun Oracle.
VII- 6
Bab 8 Membuat Basis Data dengan MySQL
Kelebihan Dan kekurangan MySQL dibanding RDBMS Lain
Hal paling mendasar yang menjadikan MySQL pilihan utama sebagai database
yang digunakan adalah karena MySQL menggunakan Lisensi GPL dan
multiplatform, sehingga lebih disukai para mahasiswa karena tidak membutuhkan
biaya besar dalam membuat aplikasi serta tidak harus tergantung pada OS
Windows ataupun Linux karena dapat dijalankan pada kedua OS tersebut dan
beberapa OS lainnya. Tapi alasan tersebut tidaklah cukup untuk menjadikan
MySQL sebagai RDBMS yang akan digunakan. Berikut keunggulan dan
kekurangan
Keunggulan
•
Berlisensi GPL dan Multi Platform.
•
Dapat diintegrasikan dengan beberapa bahasa Pemrograman seperti .Net,
Java, Python, Perl yang merupakan bahasa pemrograman yang paling
dominan di kalangan programmer.
•
Mendukung ODBC untuk sistem operasi Windows sehingga bisa
digunakan aplikasi yang berjalan diwindows.
•
Bisa dijalankan pada spesifikasi hardware yang rendah karena lebih hemat
resource memory (dibandingkan database lain) sehingga mudah digunakan
untuk bahan pembelajaran.
•
MySQL dapat
mendeteksi
pesan
kesalahan
pada
klien
dengan
menggunakan lebih dari 20 bahasa meskipun bahasa indonesia belum
termasuk didalamnya.
Kekurangan
•
Banyak
mengklaim
kurang
support
terhadap
pemrograman
Visual/Desktop, sehingga sedikit yang menggunakan untuk aplikasi visual.
•
Karena berlisensi GPL sehingga sulit mendapatkan update untuk problem
yang urgent, sehingga perusahaan skala menengah keatas lebih memilih
RDBMS berlisensi dan disupport seperti Oracle dan MS SQL Server
•
Sangat diragukan dalam menangani data skala besar, karena ada beberapa
opini yang pro dan kontra terhadap kemampuan MySQL terhadap
pengolahan data yang besar.
Bab 8 Membuat Basis Data dengan MySQL
VII- 7
Kemampuan MySQL
Berikut Kemampuan MySQL yang tidak kalah dengan RDBMS lain seperti
Oracle dan SQL Server
1. Memiliki kecepatan
yang menakjubkan dalam menangani query
sederhana,dengan kata lain dapat memproses lebih banyak SQL per satuan
waktu.
2. Memiliki lebih banyak type data seperti : signed/unsigned integer yang
memiliki panjang data sebesar 1,2,3,4 dan 8 byte, FLOAT, DOUBLE,
CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME,
TIMESTAMP, YEAR, SET dan tipe ENUM.
3. Mendukung field yang dijadikan Index, dengan maksimal 32 index dalam
satu tabel. *
4. MYSQL memiliki beberapa lapisan keamanan, seperti subnetmask, nama
host, dan izin akses user dengan system perijinan yang mendetail serta
sandi/password terenkripsi.
5. Konektivitas , MySQL dapat melakukan koneksi dengan klien
menggunakan protokol TCP/IP ,Unix soket (UNIX),atau Named
Pipes(NT).
6. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam
waktu yang bersamaan tanpa mengalami masalah atau konflik
7. Command and function, MySQL memiliki fungsi dan operator secara
penuh yang mendukung perintah select dan where dalam query.
8. Structure Table, MySQL memiliki struktur tabel yang lebih fleksibel
dalam menangani ALTER TABLE dibandingkan DBMS lainnya.
9. Mendukung penuh terhadap kalimat SQL GROUP BY dan ORDER BY.
Mendukung terhadap fungsi penuh ( COUNT(),COUNT(), DISTINCT()
AVG(), STD(), SUM(), MAX() dan MIN() ).
Struktur MySQL
MySQL Sama dengan bahasa pemrogaman lainnya yang juga sama-sama
memiliki tipe data.
Tipe Data String
char, memiliki panjang 255
VII- 8
Bab 8 Membuat Basis Data dengan MySQL
varchar, memiliki panjang 255
tinytext, memiliki panjang 255
text, tidak terbatas
mediumtext, 1 juta
longtext, 4 Milyar
Tipe Data Numerik
int, -2 M sampai dengan 4 M
tinyint, -128 sampai dengan 255
mediumint, -8 Juta sampai dengan 8 Juta
bigint, -92 Triliyun sampai dengan 92 Triliyun
float, bilangan desimal positif, bilangan real
double, bilangan desimal negatif dan positif
Tipe Data Date dan TIme
date, hanya memuat tanggal saja, dengan formatnya seperti ini tahun-bulantanggal
time,
hanya
memuat
waktu
saja,
formatnya
HH:MM:SS
(Jam:Menit:Detik) datetime, memuat tanggal dan waktu, formatnya TahunBulan-Hari Jam:Menit:Detik year.
Tipe Key
Primary Key, Kunci yang menghubungkan antara 1 table dengan table lainnya
Auto Increment
Auto Increment menyebabkan pertambahan nilai urutan secara otomatis, suatu
record memiliki nilai 1, kemudian jika ada record yang lain lagi di insertkan ke
dalam database, maka urutannya akan menjadi 2 dan begitu seterusnya.
Bab 8 Membuat Basis Data dengan MySQL
VII- 9
Syntax MySQL
Perintah-perintah standar dalam SQL dapat diklasifikasikan menjadi empat bagian
yaitu Data Definition Language (DDL), Data Manipulation Language (DML),
Data Query Language (DQL) dan Data Control Language (DCL).
•
Data Definition Language (DDL) adalah perintah-perintah SQL yang
digunakan untuk mendefinisikan struktur dan skema database. Perintahperintah SQL yang masuk klasifikasi ini antara lain adalah CREATE
(membuat obyek di database), ALTER (merubah struktur database),
DROP (menghapus obyek database), TRUNCATE (menghapus semua
record dari sebuah tabel termasuk semua ruang yang dialokasikan),
COMMENT (menambahkan komentar ke kamus data | data dictionary)
dan RENAME (memberi nama ulang sebuah obyek).
•
Data Manipulation Language (DML) adalah perintah-perintah SQL yang
digunakan untuk memanipulasi data di dalam obyek database. Perintahperintah SQL yang masuk klasifikasi ini antara lain adalah SELECT
(mengambil data dari database), INSERT (memasukkan data ke tabel),
UPDATE (memperbarui data yang ada di sebuah tabel), DELETE
(menghapus semua record dari sebuah tabel), MERGE-UPSERT (operasi
insert dan update), CALL (memanggil PL/SQL atau subprogram Java),
EXPLAIN PLAN (menjelaskan jalur akses data) dan LOCK TABLE
(mengontrol konkurensi).
VII- 10
Bab 8 Membuat Basis Data dengan MySQL
•
Data Control Language (DCL) adalah perintah-perintah SQL yang
digunakan untuk mengontrol data dan server database. Perintah-perintah
SQL yang masuk klasifikasi ini antara lain adalah GRANT (memberikan
hak akses pengguna ke database) dan REVOKE (mencabut hak akses yang
diberikan dengan perintah GRANT).
•
Transaction Control Language (TCL) adalah perintah-perintah SQL yang
digunakan untuk mengontrol pemrosesan transaksional di dalam database.
Perintah-perintah SQL yang masuk klasifikasi ini antara lain adalah
COMMIT
(menerapkan
transaksi
dengan
menyimpan
perubahan
database), ROLLBACK (mengembalikan database ke kondisi awal sejak
terakhir COMMIT), SAVEPOINT (mengidentifikasi titik dalam transaksi
yang nanti bisa diputar kembali) dan SET TRANSACTION (Mengubah
opsi transaksi seperti tingkat isolasi dan segmen rollback apa yang
digunakan).
Untuk lebih memahami penggunaan perintah pada MySQL, berikut adalah contoh
aplikasinya yang harus dipraktikan.
PRAKTIKUM DATABASE MYSQL: Mengenal perintah-perintah SQL
1. Buka xampp control panel dan aktifkan MySQL
Bab 8 Membuat Basis Data dengan MySQL
VII- 11
2. Buka command prompt
3. Beri perintah
cd\xampp\mysql\bin lalu tekan enter, maka akan muncul
4. Lalu untuk masuk ke user root, ketikan mysql –u root –p akan muncul
langsung tekan enter karena password root secara default kosong. Maka
akan muncul prompt mysql seperti gambar berikut
5. Masukan perintah berikut
VII- 12
Bab 8 Membuat Basis Data dengan MySQL
Apa hasil ekseskusi perintah di atas?
6. Pembuatan Database. Pada mysql prompt, buat database buku dengan
perintah
mysql>create database buku;
lalu tekan enter
7. Tulis kembali perintah
mysql>show databases;
perhatikan di daftar database yang muncul apakah sudah ada database
buku.
8. Membuat tabel pada database buku. Tulis perintah berikut untuk masuk ke
database buku
mysql>use buku;
maka akan muncul pesan : Database changed
9. Tabel pertama yang akan dibuat adalah Tabel buku_alamat dengan
struktur sebagai berikut :
10.
Field
Type
Length
Keterangan
No
int
3
Primary Key
Nama
varchar
35
Alamat
varchar
60
Email
varchar
40
No_telp
varchar
15
Bab 8 Membuat Basis Data dengan MySQL
VII- 13
Skrip sqlnya adalah sebagai berikut :
Kalau tidak ada penulisan perintah yang salah, maka akan muncul Query
OK, 0 rows affected (0.22 sec)
11. Sekarang, tabel buku_alamat kita isi dengan data berikut
No Nama
Alamat
Email
No_telp
1
Sugeng
Jakarta
[email protected] 087654567876
2
Ridwan
Depok
[email protected] 067898765987
Perintah SQL nya adalah :
mysql>SELECT * FROM buku_alamat;
mysql>LOAD DATA INFILE “data_alamat.sql”
->INTO TABLE buku_alamat;
VII- 14
Bab 8 Membuat Basis Data dengan MySQL