MODUL Pelatihan Web

advertisement
MODUL
Pelatihan Web
MySQL
AL AZHAR COMPUTER CLUB
Oleh :
Achmad Fachrie
Jakarta, 2006
Al Azhar Computer Club
MySQL
Dalam melakukan pengembangan aplikasi, salah satu komponen yang terpenting adalah
database. Database merupakan aplikasi pendukung yang menyimpan data yang berhubungan
dengan aplikasi yang digunakan. Database tersusun atas table-table yang berhubungan, dan
dalam table tersusun atas baris dan kolom yang memuat suatu data. Tanpa database, maka
data-data yang digunakan aplikasi tidak tersimpan.
Pengenalan MySQL
MySQL adalah salah satu database pendukung aplikasi client-server yang sangat terkenal
penggunaannya. MySQL digunakan karena menggunakan bahasa SQL (Structured Query
Language) standar sebagai bahasa dasar untuk melakukan aksesnya. SQL sendiri merupakan
bahasa query yang digunakan untuk melakukan suatu perintah eksekusi dalam database.
MySQL merupakan database SQL open source yang paling populer. Karena yang menarik,
MySQL bersifat free, juga tersedia pada berbagai platform, dan juga memiliki pendukung
kompabilitas pada aplikasi-aplikasi lain. Aplikasi MySQL ini sendiri dapat didownload langsung
melalui situsnya yaitu http://www.mysql.org atau http://www.mysql.com.
MySQL dikatakan database open source, yang berarti memungkinkan semua orang untuk dapat
menggunakan dan memodifikasi software. Siapapun dapat men-downlaod MySQL dari Internet
dan menggunakannya dengan bebas tanpa mengeluarkan biaya apapun. Jadi, kita bisa
mempelajari source code dan mengembangkan sesuai dengan keinginan kita. MySQL
menggunakan GPL (General Public License).
MySQL merupakan database yang bersifat DBMS (Database Management System) dan RDBMS
(Relational Database Management System). DBMS berarti database yang secara terstruktur
menyimpan kumpulan data. Data ini dapat berupa apa saja dari yang paling simple, daftar
penjualan dan pembelian hingga data foto galeri suatu institusi. Sementara RDBMS berarti
sistem database yang di dalamnya terdapat tabel-tabel yang saling berhubungan (relasi) antara
yang satu dengan yang lainnya, sehingga bukanlah satu data yang tersimpan bertumpuk dalam
tempat yang besar, tapi terbagi-bagi dan saling berhubungan.
Selain itu MySQL banyak digunakan karena sangat cepat, reliable, dan mudah digunakan (ease
to use). MySQL dirancang untuk menangani database yang besar dengan cepat, serta
menawarkan berbagai fitur dan fungsi. Dengan konektivitasnya, kecepatannya, dan
keamanannya membuat MySQL dipilih sebagai database yang paling cocok untuk koneksi dalam
Internet.
Instalasi MySQL pad Windows
Pada sistem operasi Windows, instalasi MySQL cukup mudah dilakukan. Ekstrak file zip dalam
program instalasi MySQL. Lokasi default dalam peng-instal-an MySQL terdapat pada c:\mysql.
Memulai MySQL
Pada pembahasan ini, setelah melakukan peng-instal-an MySQL pada c:\mysql. Maka
selanjutnya untuk mengaktifkan MySQL dengan menjalankan sejumlah program executable yang
berada pada c:\mysql\bin. Disinilah terdapat kumpulan program MySQL.
Untuk masuk ke dalam program MySQL dapat dilakukan dengan menjalankan program MySQL
yang didapatkan dari hasil instalasi, yaitu mysql.exe, yang terdapat di c:\mysql\bin. Berikut
contoh menggunakan command prompt dengan menjalankan perintah berikut ini :
C:\>mysql\bin\mysql (enter)
Kemudian akan masuk ke dalam mysql dalam bentuk seperti ini :
Bentuk prompt>mysql menunjukkan sudah berada dalam program MySQL, dan di prompt>mysql
inilah tempat untuk mengetikkan perintah query MySQL dan yang harus diketahui bahwa setiap
penulisan query tersebut harus di akhiri dengan tanda titik-koma “;”.
Catatan :
Setelah menginstal MySQL, langkah awal adalah memberikan password pada root. Root adalah
pemakai tertinggi dalam mengakses MySQL. Pemberian password dilakukan dengan memberikan
perintah :
mysqladmin –uroot password rahasia
Dengan demikian untuk menjadi root, passwordnya adalah rahasia
Untuk mengganti password, misal menjadi secret lakukan perintah :
mysqladmin –uroot –p secret
Enter password :******* (ketikkan password awal)
Mengenai hak akses user akan dibahas ada bab selanjutnya
Melihat Database
Setelah masuk ke dalam program MySQL. Untuk mengetahui daftar database yang terdapat
dalam MySQL dapat dilakukan dengan menggunakan perintah show databases pada
prompt>mysql, seperti :
Membuat Database
Setelah mengetahui bagaimana melihat database yang tersedia dalam MySQL, maka untuk
membuat database itu sendiri dalam MySQL dengan menggunakan perintah create database
namadatabase, contoh :
mysql> CREATE DATABASE latih1db;
Selanjutnya untuk dapat menggunakan database yang tersedia dengan menggunakan use
namadatabase, contoh :
mysql> USE latih1db;
Menghapus Database
Untuk menghapus sebuah database dalam MySQL menggunakan perintah drop namabase.
Hati-hati menggunakan perintah ini karena ini akan menghapus database beserta isinya, contoh :
mysql> DROP latih1db;
Melihat Tabel
Setelah menentukan database, untuk dapat melihat tabel apa saja yang berada pada database
yang sudah dipilih, dengan perintah show tables, contoh :
mysql> SHOW TABLES;
Empty set (0.00 sec)
Tentu jika database tersebut baru dibuat, maka yang dihasilkan masing kosong (empty set).
Membuat Tabel
Sebelum membuat tabel dalam MySQL, kita harus mengetahui tipe data apa saja yang terdapat
dalam database MySQL, berikut ini beberapa tipe data MySQL yang sering digunakan :
Perintah untuk membuat tabel baru adalah :
CREATE TABLE namatabel(
struktur
);
Sebelum membuat tabel, kita harus menentukan nama tabel dan struktur tabel tersebut terlebih
dahulu, sehingga dapat menentukan nama field dan jenis tipe data yang akan digunakan, misal
kita akan membuat sebuah tabel dengan nama biodata dengan struktur seperti berikut ini :
Setelah menentukan tabel dan strukturnya, maka perintah MySQL yang digunakan untuk
membuat tabel diatas adalah :
mysql> CREATE TABLE biodata(
nomor int(6) NOT NULL,
nama char(40) NOT NULL,
email char(255) NOT NULL,
alamat char(80) NOT NULL,
kota char(20) NOT NULL,
PRIMARY KEY(nomor)
);
Jika berhasil maka akan keluar pesan :
menunjukkan kecepatan eksekusi
perintah bersifat relatif
Query OK, 0 rows affected (0.77 sec)
Tapi jika salah akan memberikan pesan error dan menunjukkan letak kesalahannya, sehingga
harus mengulang kembali.
Catatan :
Contoh lain perintah untuk membuat sebuah tabel yang baru yang lebih spesifik.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] namatabel (
Struktur
);
Pilihan temporary digunakan untuk membuat tabel sementara, yang hanya aktif pada sesi tersebut
digunakan. Sementara jika if not exists adalah membuat tabel baru jika memang tabel itu sudah,
karena jika sudah ada tetapi tanpa menyisipkan perintah if not exists akan memberikan pesan
error.
Melihat Struktur Tabel
Untuk dapat melihat struktur tabel yang telah kita buat dapat menggunakan perintah describe
namatabel, misal :
mysql> DESCRIBE biodata;
Selain menggunakan describe namatabel, kita juga dapat menggunakan perintah explain
namatabel. Contoh :
mysql> EXPLAIN biodata;
Hasil keduanya akan sama.
Memasukkan Data ke dalam Tabel
Setelah berhasil membuat struktur tabel, selanjutnya adalah mengisi tabel tersebut dengan datadata yang sesuai. Perintah MySQL yang digunakan untuk mengisi data ke dalam tabel :
INSERT INTO namatabel VALUES (kolom1, kolom2, kolom3,….);
Misal berikut ini data yang ingin dimasukkan ke dalam tabel biodata :
Nomor
1
2
Nama
Andi
Budi
Email
[email protected]
[email protected]
Alamat
Jl. Thamrin No 19
Jl. Sudirman No 20
Kota
Jakarta
Jakarat
Maka perintah MySQL tersebut adalah :
mysql> INSERT INTO biodata VALUES (‘1’, ‘Andi’, ‘[email protected]’,
‘Jl Thamrin No 19’, ‘Jakarta’);
Menampilkan Isi Tabel
Setelah mengisi tabel. Untuk dapat melihat seluruh data pada tabel tersebut adalah dengan
melakukan perintah :
SELECT * FROM namatabel;
Tapi, jika kita hanya ingin menampilkan kolom tertentu, maka kita perlu menuliskannya dengan
cara :
SELECT kolom1,kolom2,… FROM namatabel;
Berikut ini contoh keduanya :
mysql> SELECT * FROM biodata;
Menampilkan kolom nama dan
email pada tabel biodata
mysql> SELECT nama, email FROM biodata;
Untuk menampilkan data berdasarkan kondisi atau kriteria tertentu sehingga lebih spesifik di
dalam MySQL menggunakan WHERE. Ini akan berguna jika tabel kita berisi banyak data.
Contoh:
mysql> SELECT nama, email FROM biodata WHERE nama=’budi’;
Menampilkan isi data pada tabel secara terurut atau kebalikkannya dengan menggunakan
ORDER BY namakolom ASC atau DESC. Contoh :
mysql> SELECT * FROM biodata WHERE nama=’budi’ ORDER BY nama ASC;
Selain itu, perintah SELECT juga dapat melakukan perhitungan, MAX/MIN seperti :
Memodifikasi Record Data
Untuk memodifikasi atau meng-update suatu record dalam MySQL dengan menggunakan
perintah seperti :
UPDATE namatabel SET kolom1=nilaibaru1, kolom2=nilaibaru2….
WHERE kriteria;
Berikut ini contoh jika ingin mengganti email berdasarkan nomor :
mysql> UPDATE biodata SET email=’[email protected]’ WHERE nomor=’1’;
Mengubah Struktur Tabel
Di dalam prakteknya terkadang ada perubahan terhadap tabel yang telah kita buat. Entah
sekedar mengganti nama tabel atau kita ingin mengganti nama suatu kolom, menambang suatu
kolom, atau juga mengganti kolom tertentu. Di dalam MySQL perintah untuk melakukan ini
adalah ALTER TABLE namatabel jenistindakan. Berikut ini beberapa permisalannya :
•
Menambah kolom baru pada posisi awal tabel
mysql> ALTER TABLE biodata ADD nim FIRST;
•
Menambah kolom baru pada posisi setelah kolom tertentu.
mysql> ALTER TABLE biodata ADD telp AFTER alamat;
•
Menambah kolom baru pada posisi akhir (default)
mysql> ALTER TABLE biodata ADD kodepos;
•
Mengganti jenis tipe data suatu kolom
mysql> ALTER TABLE biodata MODIFY nama VARCHAR(50);
•
Mengganti nama field/kolom
mysql> ALTER TABLE biodata nomor no_siswa VARCHAR(6);
•
Mengganti nama tabel
mysql> ALTER TABLE biodata RENAME biodata_mahasiswa;
•
Menghapus satu kolom
mysql> ALTER TABLE biodata DROP COLUMN nim;
Menghapus Data Tertentu dalam Tabel
Untuk menghapus suatu record dalam tabel menggunakan kriteria tertentu. Disini perintah yang
digunakan adalah DELETE FROM namatabel Bila tidak menentukan kriteria (WHERE) maka
seluruh data yang ada akan dihapus. Hati-hatilah menggunakan perintah ini. Contoh :
mysql> DELETE FROM biodata;
mysql> DELETE FROM biodata WHERE nama=’Andi’;
Menghapus Tabel
Untuk menghapus tabel yang sudah dibuat, yaitu dengan perintah drop table namatabel. Hatihati menggunakan perintah ini, karena akan menghapus tabel beserta isinya. Contoh :
mysql> DROP TABLE biodata;
Manajemen Hak Akses User MySQL
Setelah sebelumnya membahas perintah-perintah yang berhubungan dengan database dan
tabel. Pada bab ini akan membahas manajemen penggunaan hak akses user terhadap MySQL,
bahwa tidak semua user dapat melakukan semua perintah dalam MySQL. Kita dapat menambah
user dalam MySQL sekaligus kita dapat menentukan hak apa saja yang diberikan kepada user
tersebut dalam melakukan perintah.
Di bab sebelumnya setelah sedikit membahas mengenai penggunaan user root. Untuk
melakukan penambahan user dan memberikan akses terhadap user, kita harus menjadi root
dalam MySQL. Segala hal yang berkaitan dengan user MySQL dapat dilihat pada tabel user
database mysql.
Berikut ini untuk mengetahui struktur table user beserta kolom-kolomnya :
Mengakses MySQL Melalui root
Untuk dapat mengakses MySQL sebagai root dengan menggunakan perintah berikut :
mysql –u root –p
Enter password :
Membuat User Baru
Untuk membuat user baru, ingat Anda harus sudah memilih database mysql terlebih dahulu
dengan use mysql. Selanjutnya melakukan perintah INSERT ke tabel user seperti berikut :
mysql> INSERT INTO user VALUES (‘localhost’,’saya’, password(‘123’));
Perintah di atas menunjukkan kita membuat user baru dengan nama saya dan password 123.
Setelah memberikan perintah di atas, selanjutnya berikan perintah :
mysql> FLUSH PRIVILEGES;
Perintah di atas digunakan agar perubahan yang kita lakukan berpengaruh terhadap program
MySQL. Privilege (hak akses terhadap database) berpengaruh pada tahap selanjutnya.
Catatan :
Perintah FLUSH selain untuk PRIVILEGES, juga dapat untuk :
•
•
•
•
HOSTS (Untuk cache tentang hosts - nama mesin)
LOGS (Membaca ulang informasi yang tercatat di dalam file log.)
STATUS (Membaca ulang status.)
TABLES (Menutup semua tabel yang terbuka di dalam table cache.)
Kemudian keluarlah dari MySQL dengan perintah
mysql> exit;
Selanjutnya ujilah user baru dengan memberikan perintah berikut :
mysql –usaya –p
Enter password :
Setelah menjumpai prompt>mysql. Cobalah untuk memberikan perintah :
mysql> USE mysql;
Apa yang terjadi? Ternyata pemakai saya tidak dapat mengakses database mysql. Ini
dikarenakan ketika kita membuat user baru, kita belum mengatur wewenangnya. Pada keadaan
ini semua pengaksesan terhadap database tidak diperkenankan.
Melihat Wewenang User
Untuk mengetahui wewenang atau hak akses suatu user pada MySQL yaitu dengan
menggunakan perintah SHOW GRANTS FOR. Contoh :
Mengganti Wewenang User
Untuk mengganti wewenang suatu user, pertama kita harus menjadi root. Selanjutnya
menggunakan perintah yang sudah kita pelajari yaitu UPDATE.
Untuk mempraktekkannya, jalankan mysql dengan menjadi root :
mysql –uroot –p
Setelah melakukan perintah UPDATE pada tabel user seperti berikut :
mysql> UPDATE user SET select_priv = ‘Y’,
Insert_priv = ‘Y’,
Update_priv = ‘Y’,
Delete_priv = ‘Y’,
Create_priv = ‘Y’,
Drop_priv = ‘Y’
WHERE user = ‘saya’;
Perintah di atas digunakan untuk mengubah isi sejumlah kolom pada tabel user. Perintah di atas
menunjukkan agar user saya dapat melakukan operasi SELECT, UPDATE, DELETE, terhadap
tabel dan menciptakan (CREATE) dan menghapus (DROP) tabel.
Selain seperti diatas untuk menentukan hak akses pada user, dapat juga dengan menggunakan
perintah GRANT. Berikut ini contoh perintah :
Memberikan hak akses SELECT, INSERT, UPDATE, dan DELETE kepada user dian, dari mesin local
(localhost), dan hanya untuk Database diandb saja.
mysql> GRANT SELECT, INSERT, UPDATE, DELETE
ON diandb.*
TO dian@localhost ;
Sementara itu untuk menghapus hak akses user pada MySQL dengan menggunakan perintah
REVOKE. REVOKE pada user bukan menghapus hak akses user secara permanent. Untuk
menghapus hak user secara permanent dari grant tables dengan menggunakan perintah
DELETE FROM. Contoh :
Untuk menghapus izin akses SELECT dan INSERT dari user dian:
mysql> REVOKE SELECT, INSERT
ON diandb.*
FROM dian@localhost ;
Untuk menghapus seluruh izin akses dari user dian:
mysql> REVOKE ALL PRIVILEGES
ON diandb.*
FROM dian@localhost ;
Jenis Format Tabel dalam MySQL
MySQL menyediakan beberapa jenis format tabel yang penggunaannya tergantung dari tujuan
pembuatan tabel tersebut. Jenis format tabel tersebut adalah sebagai berikut:
• Format Tabel ISAM
• Format Tabel MyISAM
• Format Tabel HEAP
• Format Tabel MERGE
• Format Tabel Innodb
• Format Tabel BerkeleyDB
Di dalam MySQL table-tabel diatas terbagi atas table dengan kemampuan bertransaksi
(transaction-safe table /TST) dan table tanpa kemampuan bertransaksi (non transaction table
safe / NTST). Transaksi disini berarti kemampuan software untuk membatalkan suatu proses,
kemudian mengembalikan nilai awal sebelum proses tersebut terjadi.
Keunggulan transaction-safe tables (TST) dibandingkan dengan not transaction-safe tables (NTST)
adalah:
•
•
•
Lebih aman
Cukup menggunakan satu perintah COMMIT saja untuk mengupdate beberapa perintah di
atasnya.
Dapat menjalankan perintah ROLLBACK yang mengabaikan perubahan -perubahan yang
terjadi pada transaksi yang dibatalkan.
Sedangkan keunggulan dari not transaction-safe tables (NTST) dibandingkan dengan transaction-safe
tables (TST) adalah:
•
•
•
Proses lebih cepat karena tidak adanya beban transaksi (no transaction overhead).
Penggunaan ruang dalam hard disk yang lebih hem at karena tidak adanya beban transaksi.
Penggunaan memori yang lebih hemat, juga karena tidak adanya beban transaksi.
Dari gambaran di atas, kita bisa menentukan format tabel apa saja yang akan kita pilih sesuai dengan
kebutuhan. Tentu harus ada pertimbangan yang matang dalam hal pemilihan format tabel ini. Pada
MySQL sendiri, format tabel MyISAM merupakan format default yang digunakan.
Download