BAB
1 MENGENAL MySQL
1.1
Pengertian MySQL
Mysql adalah sebuah server database
open source yang terkenal yang digunakan berbagai aplikasi terutama untuk
server atau membuat WEB. Mysql berfungsi sebagai SQL (Structured Query
Language) yang dimiliki sendiri dan sudah diperluas oleh Mysql umumnya
digunakan bersamaan dengan PHP untuk membuat aplikasi server yang dinamis dan
powerfull :).
Tidak sama dengan proyek-proyek
seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas
umum, dan hak cipta untuk kode
sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori
oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir
atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang
mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael “Monty” Widenius.
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 basisdata, terutama 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 non-transaksional, MySQL dapat
dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen
basisdata kompetitor lainnya. Namun demikian 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.
1.2 Keistimewaan
MySQL
MySQL memiliki beberapa
keistimewaan, antara lain :
1.
Portabilitas. MySQL dapat berjalan stabil pada
berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server,
Solaris, Amiga, dan masih banyak lagi.
2.
Perangkat lunak sumber terbuka. MySQL
didistribusikan sebagai perangkat lunak sumber terbuka, dibawah
lisensi GPL sehingga
dapat digunakan secara gratis.
3.
Multi-user. MySQL dapat digunakan oleh
beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau
konflik.
4.
‘Performance tuning’, MySQL memiliki kecepatan
yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat
memproses lebih banyak SQL per satuan waktu.
5.
Ragam tipe data. MySQL memiliki ragam tipe data
yang sangat kaya, seperti signed / unsigned integer, float, double, char, text,
date, timestamp, dan lain-lain.
6.
Perintah dan Fungsi. MySQL memiliki operator dan fungsi
secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
7.
Keamanan. MySQL memiliki beberapa lapisan
keamanan seperti level subnetmask, nama host, dan izin akses user
dengan sistem perizinan yang mendetail serta sandi terenkripsi.
8.
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 milyar baris. Selain itu batas indeks yang dapat ditampung
mencapai 32 indeks pada tiap tabelnya.
9.
Konektivitas. MySQL dapat melakukan koneksi
dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
10.
Lokalisasi. MySQL dapat mendeteksi pesan
kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun
demikian, bahasa Indonesia belum termasuk di dalamnya.
11.
Antar Muka. MySQL memiliki antar muka
(interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan
menggunakan fungsi API (Application Programming
Interface).
12.
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.
13.
Struktur tabel. MySQL memiliki struktur tabel yang
lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya
semacam PostgreSQL ataupun Oracle.
BAB 2 PERINTAH DASAR MYSQL
Perintah
Dasar MySQL dengan Command Prompt atau CMD akan coba di
share, diasumsikan anda sudah mengerti bagaimana caranya menjalankan server
MySQL, tapi bagi yang belum memahami cara instalasi mysql anda dapat langsung
membuka tutorial menginstal xampp. Langsung saja hal pertama yang di lakukan
adalah membuka Command Prompt, dengan cara mengetik "cmd" di kolom
Run. Kemudian pada jendela Command Prompt(CMD) ketikan perintah untuk masuk ke
direktori bin MySQL berikut perintahnya: cd c:\xampp\mysql\bin kemudian
tekan enter. Berikut penampakannya agar lebih jelas:
kemudian
kita masuk ke server MySQL yaitu dengan cara mengetikan perintah berikut pada
CMD: mysql -u root dan berikut penampakannya:
Setelah hal diatas sudah di lakukan
mari kita lanjutkan ke step berikutnya, yaitu dengan cara memberikan instruksi
berupa perintah-perintah SQL, berikut adalah contoh implementasi dalam
operasi database.
2.1. Membuat Database
Ketika kita akan membuat database
harus dipastikan dulu bahwa database yang akan dibuat belum ada (no exist).
Kita akan membuat database dengan nama sekolah, perintah yang dilakukan
adalah: create dabase sekolah; kemudian tekan enter.
2.2.
Menghapus Database
perintah yang digunakan adalah drop
database sekolah; kemudian tekan enter. Maka database sekolah akan
terhapus.
2.3. Menampilkan Daftar Database
Perintah yang digunakan untuk
menampilkan daftar database yang ada dalam server MySQL adalah show
databeses; maka akan muncul seperti berikut:
2.4.
Mengaktifkan Database
Kita akan menggunakan database Sekolah,
tapi tadi sudah dihapus jadi harus dibuat lagi seperti cara nomor satu,
berikut adalah perintah mengaktifkan database: use sekolah;
2.5. Membuat
Tabel
Hal yang penting dalam membuat tabel
adalah menentukan nama tabel, nama kolom dan tipe kolomnya:
CREATE
TABLE nama_tbl(
kolom1 tipekolom1(ukuran),
kolom2 tipekolom2(ukuran), );
kolom1 tipekolom1(ukuran),
kolom2 tipekolom2(ukuran), );
2.6. Melihat
Daftar Tabel
Perintah yang digunakan untuk
melihat tabel apa saja yang ada di dalam database adalah dengan mengetikan show
tables;
2.7. Melihat Deskripsi Tabel
Sedangkan perintah yang digunakan untuk melihat deskripsi tabel digunakan perintah desc.
2.8. Memodifikasi Struktur Tabel
Yang dapat di modifikasi dalam
sebuah tabel diantaranya ganti nama, ubah struktur(tambah kolom/indeks, hapus
kolom/indeks, ubah tipe kolom), dan sebagainya. berikut adalah sintaks SQL yang
dapat digunakan:
ALTER TABLE nama_tbl action
sedangkan perintah untuk menambah
kolom baru dengan tipe dan posisi tertentu adalah:
ALTER TABLE nama_tbl
ADD kolom_baru type() definisi
ADD kolom_baru type() definisi
BAB
3 MANAJEMEN USER
Dalam sebuah
Database MySQL Server biasanya terdapat banyak database, Dan pada umumnya satu
buah database (dpt lebih dari satu) digunakan oleh satu buah
aplikasi/web.
Contoh
lainnya adalah pada jasa share hosting satu buah Database MySQL Server
di pake rame-rame oleh banyak penyewa.
Karna Sebuah
Database MySQL digunakan oleh rame-rame sudah saat nya dibutuhkan Manajemen
User, untuk mengelolah hak ases dari setiap user dalam mengakses database agar
tercipta ketertiban setiap user dalam menggunakan database.
Pada kasus
lain Manajemen User Database juga dirasakan perlu diterapkan pada prodak-prodak
aplikasi/program yang mengakses Database yang dapat berupa CMS, Framework atau
apa pun yang mana prodak tersebut bersifat Open Source.
Karna Open Source setiap orang bisa mengetahui dimana letak konfigurasi koneksi Database dan bila kofigurasi itu berhasil 'dibongkar' dan koneksi-nya ke database menggunakan user Root maka dapat terjadi kemungkian terburuk adalah Database dapat dirusak oleh-nya.
Untuk
memenuhi kebutuhan tersebut dan mecegah kejadian buruk diatas maka Manajemen
User adalah pilihan solusinya.
Berikut ini
adalah Cara membuat membuat user di Database MySQL.
1. Masuk ke Console MySQL menggunakan user Root,
sebagai contoh password yang gunakan adalah pass.
mysql -uroot
-ppass
2. Sebagai contoh
membuat sebuah user bernama dendie dengan password pass
CREATE USER
'dendie'@'localhost' IDENTIFIED BY 'pass';
3. Sebagai contoh, Kemudian user dendie
diberikan akses hanya dapat mengakses database bernama sms
GRANT ALL
PRIVILEGES ON sms.* TO 'dendie'@'%' WITH GRANT OPTION;
simbol sms.*
mengartikan database yang dapat diakses adalah database sms beserta
seluruh tabelnya.
Bila Anda
menuliskannya begini sms.inbox artinya yang dapat diakses hanya tabel inbox
pada tabel sms
simbol 'dendie'@'%'
artinya database dapat diakses menggunakan user dendie dariIPAddess apa
saja.
Bila Anda
menuliskan 'dendie'@'119.168.10.28' artinya user dendie hanya
dapatdigunakan dari IP Address 119.168.10.28
Bila user
dendie mencoba mengakses database selain sms maka yang terjadi adalah
ERROR 1044
(42000): Access denied for user 'dendie'@'localhost' todatabase 'portofolio
Sedangkan
untuk menghapus user dapat mengunakan perintah seperti ini
DROP USER
'dendie'@'%';
pada contoh
diatas adalah menghapus user dendie yang IP Address nya apa saja (%)
DROP USER
'yuli'@'localhost';
Pada contoh
diatas adalah menghapus user yuli yang aksesnya dari localhost
Untuk
melihat daftar user yang ada pada database dapat menggunakan cara seperti
ini,terlebih dulu Anda harus login sebagai root
us mysql
slect
host,user from user;
Kemudian
akan muncul hasil seperti dibawah ini
+---------------+------------------+
| host | user |
+---------------+------------------+
| % | root |
|
127.0.0.1 | root |
|
192.168.10.% | root |
|
dendie-laptop | root |
|
localhost | debian-sys-maint |
|
localhost | root |
|
localhost | websekolah |
|
localhost | yuli |
+---------------+------------------+
BAB
4 JENIS DATA, KOLOM DAN OPERATOR
4.1. 4.1 Jenis
data
Secara umum jenis data pada MySQL dibagi menjadi 4 jenis, yaitu:
• Numeric Values, yaitu angka atau bilangan.
• String/Character Values, yaitu teks atau karakter.
• Date and Time Values, yaitu tanggal dan waktu.
• NULL
4.1.1.
Numeric Values
adalah angka atau bilangan seperti 10; 123; 100.50; ‑10;
1.2E+17; 2.7e‑11; dan sebagainya. Jenis data bilangan dibagi lagi menjadi dua, yaitu Bilangan
Bulat (integer) dan Bilangan Pecahan (Floating point). Kedua
jenis bilangan ini dapat bernilai positif (+) dan juga negatif (‑). Jika
bilangan tersebut menggunakan tanda (+) atau (‑), maka disebut SIGNED.
Sebaliknya, bila tanpa tanda apapun disebut UNSIGNED. Karena tanda (+)
dapat diabaikan penulisannya, maka pada bilangan yang bernilai positif disebut
juga unsigned.
4.1.2. Character Values
adalah semua karakter (atau teks) yang penulisannya
diapit oleh tanda kutip, baik kutip tunggal maupun kutip ganda.
Untuk angka yang ditulis dengan tanda kutip akan
dianggap sebagai karakter atau string (bukan Numeric Values).
Contoh penulisan teks yang benar adalah sebagai
berikut:
"Jl.
Surabaya No. 34"
'Kota
Malang'
"
suka masakan ini"
‘123456'
"
akan berkunjung ke rumahmu pada hari Jum'at depan"
4.1.3.
Date and time values
Format standar (default) penulisan
tanggal adalah "Tahun‑Bulan‑Tanggal" (“YYYY-MM-DD”).
Misalkan
untuk 22 Januari 2002, dituliskan "2002‑01‑22". Untuk
menampilankannya, kita bisa menggunakan fungsi DATE_FORMAT() yang dapat
disesuaikan dengan kebutuhan kita.
Untuk
penulisan waktu, formatnya adalah "Jam:Menit:Detik" (“HH:MM:SS”).
Contoh, "13:55:07". Data tanggal dan waktu bisa digabung
penulisannya, menjadi “2002‑01‑22 13:55:07”.
4.1.4.
Null
NULL sebenarnya bukan data, tapi dia mewakili sesuatu yang
"tidak pasti", 'tidak diketahui", atau “belum ada nilainya”.
NULL
tidak identik dengan angka NOL (0).
Sebagai
contoh, selama melakukan survei mengenai berapa jumlah pengguna sistem operasi
Linux dan Windows di Indonesia, data pastinya belum dapat diketahui sebelum
survei tersebut dilakukan secara tuntas. Oleh sebab itu, data tersebut bisa
diwakili dengan NULL, alias belum diketahui atau kosong.
4.2 Attribut Kolom/Field Pada MySQL
Jenis kolom
merupakan rincian dari tipe/jenis data yang diterapkan pada setiap kolom sebuah
tabel. Sedangkan Atribut merupakan pelengkap dari karakteristik sebuah
kolom/field. Pengisian attribut tambahan bersifat optional.
4.3.
Jenis Operator
pada MySQL
A. Operator Logika
B. Operator Aritmatika
C.
Operator
Pembanding
BAB 5 KONSEP DASAR
DATABASE
Basis data adalah susunan
record data operasional lengkap dari suatu organisasi atau perusahaan, yang
diorganisir dan disimpan secara integrasi dengan menggunakan metode tertentu
dalam komputer sehingga mampu memenuhi informasi yang optimal yang dibutuhkan
oleh para pengguna. jadi maksunya kumpulan data yang daling berhungan satu
dengan yang lainnya, tersimpan di perangkat keras dan digunakan perangkat lunak
untuk memanipulasinya. dan disusun sedemikian rupa supaya supaya informasi yang
dihasilkan berkualitas.
1.
KONSEP BASIS DATA & PENJELASANNYA
Konsep - konsep database terdiri dari 6 kelompok yaitu :
1. Hardware
Biasanya berupa perangkat komputer standar, media penyimpan sekunder dan media komunikasi untuk sistem jaringan.
2. Operating System
Yakni merupakan perangkat lunak yang memfungsikan, mengendalikan seluruh sumber daya dan melakukan operasi dasar dalam sistem komputer. Harus sesuai dengan DBMS yang digunakan.
3. Database
Yakni basis data yang mewakili sistem tertentu untuk dikelola. Sebuah sistem basis data bisa terdiri dari lebih dari satu basis data.
4. DBMS (Database Management System)
Perangkat lunak yang digunakan untuk mengelola basis data. Contoh kelas sederhana: dBase, Foxbase, Rbase, MS. Access, MS. Foxpro, Borland Paradox. Contoh kelas kompleks: Borland-Interbase, MS. SQL Server, Oracle, Informix, Sybase.
5. User ( Pengguna Sistem Basis Data )
Orang-orang yang berinteraksi dengan sistem basis data, mulai dari yang merancang sampai yang menggunakan di tingkat akhir.
6. Optional Software
Perangkat lunak pelengkap yang mendukung. Bersifat opsional.
Konsep - konsep database terdiri dari 6 kelompok yaitu :
1. Hardware
Biasanya berupa perangkat komputer standar, media penyimpan sekunder dan media komunikasi untuk sistem jaringan.
2. Operating System
Yakni merupakan perangkat lunak yang memfungsikan, mengendalikan seluruh sumber daya dan melakukan operasi dasar dalam sistem komputer. Harus sesuai dengan DBMS yang digunakan.
3. Database
Yakni basis data yang mewakili sistem tertentu untuk dikelola. Sebuah sistem basis data bisa terdiri dari lebih dari satu basis data.
4. DBMS (Database Management System)
Perangkat lunak yang digunakan untuk mengelola basis data. Contoh kelas sederhana: dBase, Foxbase, Rbase, MS. Access, MS. Foxpro, Borland Paradox. Contoh kelas kompleks: Borland-Interbase, MS. SQL Server, Oracle, Informix, Sybase.
5. User ( Pengguna Sistem Basis Data )
Orang-orang yang berinteraksi dengan sistem basis data, mulai dari yang merancang sampai yang menggunakan di tingkat akhir.
6. Optional Software
Perangkat lunak pelengkap yang mendukung. Bersifat opsional.
2.
TUJUAN PENGGUNAAN BASIS DATA
- Mencegah data reduncy dan inconsistency
- Mempermudah melakukan akses terhadap data
- data isolasi
- cegah concurrent access anomaly
- masalah integritas.
3.
KELEBIHAN DAN KEKURANGAN
A.
Kelebihan Sistem Basis Data
·
Terkontrolnya kerangkapan data
Dalam basis data hanya mencantumkan satu kali saja field yang sama yang
dapat dipakai oleh semua aplikasi yang memerlukannya.
·
Terpeliharanya keselarasan (ke-konsistenan) data
Apabila ada perubahan data pada aplikasi yang berbeda maka secara otomatis
perubahan itu berlaku untuk keseluruhan
·
Data dapat dipakai secara bersama (shared)
Data dapat dipakai secara bersama-sama oleh beberapa program aplikasi
(secara batch maupun on-line) pada saat bersamaan.
·
Dapat diterapkan standarisasi
Dengan adanya pengontrolan yang terpusat maka DBA dapat menerapkan
standarisasi data yang disimpan sehingga memudahkan pemakaian, pengiriman
maupun pertukaran data.
·
Keamanan data terjamin
DBA dapat memberikan batasan-batasan pengaksesan data, misalnya dengan
memberikan password dan pemberian hak akses bagi user (misal : modify, delete,
insert, retrieve)
·
Terpeliharanya integritas data
Jika kerangkapan data dikontrol dan ke konsistenan data dapat dijaga maka
data menjadi akurat
·
Terpeliharanya keseimbangan (keselarasan) antara
kebutuhan data yang berbeda dalam setiap aplikasi Struktur basis data diatur
sedemikian rupa sehingga dapat melayani pengaksesan data dengan cepat
·
Data independence (kemandirian data) Dapat digunakan
untuk bermacam-macam program aplikasi tanpa harus merubah format data yang
sudah ada
B.
Kelemahan
§
Memerlukan tenaga spesialis
§
Kompleks
§
Memerlukan tempat yang besar
§
Mahal
§
Kaku
§
Redudancy dan incosistency
§
Program oriented
BAB
6 PERINTAH LANJUTAN MYSQL
Tampilkan seluruh data.
SELECT * FROM user
Tampilkan pengguna yang tidak pernah bertransaksi.
SELECT * FROM user
WHERE total_transaksi = 0
Tampilkan username pengguna yang bertransaksi kurang dari 10 dan nilainya lebih dari 1.000.
SELECT username FROM user
WHERE jml_transakai < 10 AND total_transaksi > 1000
Tampilkan total nominal transaksi yang sudah terjadi.
SELECT SUM(total_transaksi) AS total_nominal_transaksi FROM user
Tampilkan seluruh data diurutkan berdasarkan jumlah transaksi terbesar ke terkecil.
SELECT * FROM user
ORDER BY jml_transaksi DESC
Digunakan untuk menyimpan data dalam tabel dipergunakan sintaks:
INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI])
Contoh:
INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES (“test”, “alamat”, “pass”);
Perintah untuk memasukkan/menyisipkan data ke dalam sebuah tabel yang telah kita buat.
Perintah: INSERT INTO nama_tabel (nama_kolom1, nama_kolom2, ...) values (data1, data2, ...);
Contoh : insert into mahasiswa (nama, npm, kelas, alamat) values ("Budi", "12345", "1IA07", "Jakarta");
Perintah diatas berarti kita akan memasukkan data ke dalam tabel mahasiswa, yang pertama yaitu Budi ke dalam kolom nama, lalu 12345 ke dalam kolom npm, 1IA07 ke dalam kolom kelas, dan Jakarta ke dalam kolom alamat. Tanda petik ("") berarti kita sudah definisikan tipe data dari nama_kolom dengan varchar, sehingga kita harus menggunakan tanda petik ("").
Perintah : UPDATE nama_tabel SET nama_kolom = ekspresi WHERE kondisi;
Contoh: update mahasiswa set nama = "Udin" where npm = "12345";
Perintah diatas berarti kita akan mengubah data pada kolom nama menjadi Udin yang dikondisikan / dilihat dari nilai npm 12345. Sehingga semua yang memiliki nilai npm 12345 pada kolom nama nya akan berubah menjadi Udin.
Delete from mahasiswa where npm = "12345";
Perintah diatas berarti kita akan menghapus data dari tabel mahasiswa yang dikondisikan / dilihat dari npm yaitu 12345. Maka semua data yang memiliki npm 12345 akan terhapus dari tabel mahasiswa.
BAB 7 OPTIMASI MYSQL
Teknik optimasi
database adalah hal yang cukup merepotkan pada database dengan jumlah record
sedikit, namun akan sangat berguna bahkan bisa dibilang “sebuah kewajiban”
untuk database dengan ribuan bahkan mungkin bisa membludak sampe ratusan ribu.
Dulu sewaktu awal-awal belajar database menggunakan
MySQL, pernah beberapa kali membaca
artikel tentang optimasi database. Namun karena saat itu tidak merasa perlu, artikel-artikel itu abaikan saja. Bahkan saat setelah beneran
bekerja menggunakan database, teknik optimasi yang pernah baca pun tetap saja banyak yang abaikan. Setelah record database membludak, baru merasa menyesal mengabaikan optimasi
database.
Sekarang ke inti
optimasi database MySQL, tapi sebagian besar juga bisa diterapkan untuk semua
database. Secara garis besar, optimasi database terbagi menjadi dua kelompok
yaitu optimasi struktur table dan juga optimasi query.
Optimasi Struktur table:
Optimasi Struktur table:
1.
Pastikan untuk membuat primary key untuk
setiap table yang dibuat. Alasannya tentu saja untuk memberikan indexing inti
pada tiap table. Dan biasanya primary key adalah field paling mudah digunakan
untuk pencarian menggunakan WHERE dan juga untuk relasi tabel dengan JOIN.
2.
Lebih baik primary key dengan tipe data
Integer. Meskipun kita field unik no_pelanggan di tabel pelanggan dengan
pattern “xxx-9999” (char atau varchar), usahakan anda menambahkan satu field
lagi yang berperan sebagai primary key dengan tipe data integer.
3.
Hindari null dan gunakan not null. Ini
yang paling sering lupakan dan sudah merasakan akibatnya beberapa kali.
Disamping ukuran field null lebih besar dari not null, mengijinkan field untuk
menerima inputan null seringkali membuat kita harus bekerja dua kali saat
menggunakannnya dalam applikasi. Sebagai gantinya kita bisa mengeset inputan
default untuk memastikan field tersebut tidak kosong (yang berpotensi
menimbulkan error).
4.
Tambahkan index, tapi jangan terlalu
banyak. Index dapat meningkatkan kecepatan SELECT namun juga menurunkan
kecepatan INSERT dan UPDATE, maka kita harus berhati-hati memilih field mana
yang perlu diberikan index mana yang tidak. Prioritas memasang index pada suatu
field adalah yang sering digunakan untuk 1) WHERE clause 2) JOIN clause 3)
ORDER BY clause 4) SELECT clause. Memberikan index untuk semua field sepertinya
bukan ide yang bagus.
5.
Gunakan tipe data yang sesuai.
Menggunakan tipe data Text untuk field nama hanya akan membebani memori saja,
karena umumnya nama orang biasanya tidak lebih dari 100 karakter, sehingga
menggunakan varchar (100) sepertinya lebih dari cukup. Demikian juga untuk
field harga (dalam rupiah), sepertinya lebih bijaksana jika menggunakan
Integer, mengingat dalam satuan rupiah kita tidak pernah menemui harga dalam
bentuk decimal.
6.
Gunakan Enum untuk field berisi pilihan.
Field pilihan seperti jenis_kelamin, agama, kewarganegaraan lebih baik
menggunakan tipe data Enum. Enum disimpan oleh database dalam bentuk binary,
dan di-display dalam bentuk teks. Dengan menggunakan enum kita dapat menghemat
space dan sekaligus mempermudah retrieve.
Optimasi query:
1. Hindari SELECT *. Ini adalah basic dari optimasi query namun paling sering dilupakan pemula. Dengan menggunakan karakter wildcard (*) kita akan membaca semua field yang termasuk field-field yang seharusnya tidak kita perlukan. Ini tentu saja akan membebani memori. Ini juga berlaku untuk SELECT COUNT(*), sebaiknya query tersebut dihindari.
2. Biasakan menggunakan WHERE. Bahkan untuk paling sederhana lebih baik kita tetap menggunakan WHERE 1 yang pasti akan mengembalikan hasil true. Contoh: SELECT nama FROM student WHERE
3. Gunakan LIMIT untuk membatasi hasil. Kalau anda yakin query anda hanya menghasilkan satu record atau hanya akan berefek pada satu record gunakan LIMIT 1, ini akan mencegah DBMS untuk mencari kemungkinan lain di sepanjang tabel. Begitu juga kalau kita hanya memerlukan 100 record, tidak perlu meng-query ribuan data yang ada pada tabel.
4. ORDER BY dapat menurunkan performa namun meningkatkan keterbacaan. ingat dulu pernah dimarahin karena data yang tampilkan tidak sortingnya, jadi susah untuk dibaca. Tapi seumpama ada alternatif lain yang lebih baik, misalkan sorting menggunakan javascript, sepertinya ide bagus untuk menghindari ORDER BY.
5. Tabel yang lebih sedikit disebutkan lebih dulu dalam JOIN. Misalkan kita mempunyai tabel category dengan 30 record dan tabel article dengan 150 record, maka contoh joinnya adalah SELECT * FROM category JOIN article ON (category.id = article.category_id). Category disebutkan lebih dulu daripada article.
6. Manfaatkan View dan Stored Procedure. Sebenarnya untuk view masih ada perdebatan antara mana yang lebih cepat menggunakan View atau plain query dengan JOIN, tapi beberapa kali percobaan menggunakan MySQL melihat hasilnya lebih cepat menggunakan View. Sedangkan stored procedure sangat bermanfaat untuk mengeksekusi beberapa query sekaligus. Misalkan untuk menambahkan data konsumen kita perlu melakukan insert pada tabel consumer dan juga consumer_group, dari pada mengeksekusi 2 query pada aplikasi lebih baik menggunakan stored procedure, lebih menghemat bandwith pada aplikasi dengan jaringan yang lambat.
7. Hindari menggunakan Trigger. Dulu kira alasannya adalah karena MySQL adalah pemain baru dalam dunia trigger, sehingga algorithma yang digunakan mungkin kurang bagus. Tapi ternyata di DBMS yang lain pun kondisinya sama, Trigger dieksekusi lebih lambat dari pada Stored Procedure. Oleh sebab itu usahakan untuk mengganti peran Trigger (memanipulasi logika Trigger) menggunakan Stored Procedure.
BAB
8 SISTIM ADMINISTRASI MYSQL
8.1
Backup Database dengan mysqldump
Mysqldump adalah suatu program bantu yang digunakan untuk membuat backup sebuah database, beberapa database, beberapa table sekaligus bahkan dapat juga untuk memindahkan data ke server yang lain. Cara kerja mysqldump adalah menuliskan kembali isi dari satu database tertentu dalam bentuk perintah-perintah MySQL kedalam sebuah file teks. Sehingga dapat digunakan juga pada server database lain yang tidak sama system opersinya dan bahkan tidak sama program databasesnya.
Bentuk umum perintah mysqldump adalah :
[system prompt] mysqldump [pilihan] nama_ss [nama_table]
atau
[system prompt] mysqldump [pilihan] --nama_database [pilihan] DB1 [DB2 DB3]
atau
[system prompt] mysqldump [pilihan] --all -databases [pilihan]
Pilihan yang dapat disertakan banya, di bawah ini dijelaskan beberapa pilihan yang serig digunakan :
·
-?, --help
Untuk menampilkan layar bantuan yang berisi pilihan yang tersedia pada mysqldump
Untuk menampilkan layar bantuan yang berisi pilihan yang tersedia pada mysqldump
·
-A, --all-databaes
Akan membackup seluruh databases yang ada didalam server tersebut.
Akan membackup seluruh databases yang ada didalam server tersebut.
·
-B, --databases
Akan membackup beberaoa databases tertentu.
Akan membackup beberaoa databases tertentu.
·
-d, --no-data
Tidak menyertakan data-data yang ada didalam table. Hanya struktur tablenya saja yang dibackup.
Tidak menyertakan data-data yang ada didalam table. Hanya struktur tablenya saja yang dibackup.
·
-l, --lock -nama_table
melakukan penguncian pada seluruh table sebelun melakukan prises pem-backupan
melakukan penguncian pada seluruh table sebelun melakukan prises pem-backupan
·
dan lain2
8.2 Backup Database dengan mysqlhotcopy
adalah sebuah program bantu yang dibuat dengan script PERL untuk melakukan penyalinan seluruh file-file data. Program mysqlhotcopy ini tidak tersedia pada MySQL versi windows. Untuk dapat menjalankan perintah ini kita harus login sebagai root atau setidaknya meiliki izin akses (privileges).
Bentuk umum perintah ini adalah :
Mysqlhotcopy [pilihan] nama_databases / nama_direk_tuj;
Contoh :
Untuk membackup databases latihan kemudian di simpan di direktori /home/hary/.
[system prompt] mysqlhotcopy latihan /home/hary/ -user='Joni' password='xxxxxx';
8.3 Pemerikasaan dan perbaikan struktur database
Beban kerja yang berat, sibuknya permintaan query maupun ketidakstabilan kinerja listrik dan perangkat dapat mengakibatkan kerusakan pada database. Untungnya kita dapat memriksa kondisi fisik database tersebut dengan menggunakan beberapa alat bantu yang disediakan oleh mysql.
8.4 Pemerikasaan dengan MYSQLCHECK
mysqlcheck adalah sebuah program bantu (utility) yang disediakan oleh MysSQL sejak versi 3.23.38. Fungsi mysqlcheck meluputi memeriksa (check), memperbaiki (repair), menganalisis (Analyze), dan mengoptimasi (optimize) kondisi fisik suatu database dari table.
8.5
Perintah dengan MYISAMCHK dan ISAMCHK
Adalah sebuah program bantu untuk mengetahui kondisi table, memeriksa dan memperbaiki table yang rusak, maupun mengoptimasi table dalam format MYISAM. Sedangkan untuk formattabel ISAM program bantunya adalah isamchk. Format MyISAM merupakan perkembangan dari format ISAM dan format MySQL menjadi standart format table pada MySQL.
BAB
9 SEKILAS PHP DAN MYSQL
9.1 PHP
PHP pertama dibuat oleh
Rasmus Lerdorf pada tahun 1995. Pada awalnya dia menamakan script ini “Personal
Home Page Tool” yang merupakan bahasa sederhana dari bahasa pemrograman C, di
mana Personal Home Page Tool ini dapat berkomunikasi dengan database dan bersifat
Open Source.
Pada awalnya Rasmus
membuat bahasa pemrograman ini bertujuan untuk menyimpan data
pengunjung yang melihat biodata pada Website-nya. PHP/FI merupakan cikal
bakal PHP yang sekarang.
Pada pertengahan tahun
1997, programmer bahasa PHP semakin banyak, terlihat dari jumlah statistik
domain yang menggunakan PHP hampir lebih dari 50.000 Website. Kemudian karena
perkembangannya yang sangat pesat, Rasmus mengembangkan bahasa pemrograman ini
dan pada bulan November tahun 1997 muncul PHP/FI versi 2.0 yang merupakan cikal
bakal PHP 3.
PHP Versi 3 merupakan
versi penyempurna dari bugs-bugs pada PHP/FI versi 1.0 dan PHP/FI versi 2.0.
PHP Versi 3 ini dikembangkan oleh Andi Gutmans dan Zeev Suraski pada
tahun 1997 yang berhasil ditulis secara sempurna pada waktu itu. Fasilitas
tambahan PHP Versi 3 dibandingkan versi sebelumnya, selain tambahan
fungsi-fungsi baru, juga mendukung beberapa akses ke banyak database,
pengelolaan protokol dan API. Dari versi 3 inilah singkatan PHP muncul, yaitu
Hypertext Preprocessor dan pada tahun 1998 hampir 10% Website di dunia
menggunakan PHP sebagai web server-nya. Sekarang PHP disingkat menjadi PHP
Hypertext Preprocessor yaitu bahasa pemrograman web server-side yang bersifat
open source. PHP merupakan script yang dapat digunakan dengan HTML dan
berada pada server (server side HTML embedded scripting). PHP adalah script
yang digunakan untuk membuat halaman Web yang dinamis. Mekanisme ini
menyebabkan informasi yang diterima client selalu yang terbaru.
Pada musim dingin di
tahun 1998, dibuat ulang bahasa pemrograman PHP ini untuk membuat ketangguhan
bahasa pemrograman ini. Akhirnya pada pertengahan tahun 1999 diperkenalkan PHP
versi 4.0 yang menggunakan script engine Zend untuk meningkatkan penampilan
(performance) dan mempunyai dukungan yang sangat banyak terhadap ekstensi dan
berbagai library beserta modul. PHP versi 4.0 ini juga mempunyai keunggulan
dibandingkan versi-versi sebelumnya, di antaranya mendukung ke beberapa
Webserver, fasilitas HTTP session, output buffer dan sistem keamanan. Pada
perkembangannya, pada saat itu hampir 20% Webserver menggunakan bahasa
pemrograman PHP sebagai interpreter-nya. Pada bulan Juli tahun 2005 muncul PHP
versi 5.0 yang menggunakan Zend Engine 2.0 dengan penambahan beberapa fitur dan
beberapa obyek baru. PHP Versi 5 ini sangat mendukung pemrograman berbasis
Object Oriented Programming alias OOP.
PHP sendiri termasuk
dalam server side scripting. Maksudnya PHP merupakan bahasa pemrograman yang
berjalan pada sisi server atau server side. Yang dimaksud dengan server side
adalah bahwa PHP hanya dibaca oleh sistem server pada suatu jariangan dan
menampilkan hasilnya pada sisi Client. Dalam kasus ini, bahasa PHP sendiri
tidak bisa dibaca melalui halaman Client, sehingga untuk perubahannya, seorang
programmer harus masuk ke dalam server untuk mengubah sintaks PHP itu sendiri.
9.2
MySQL
MySQL
adalah database yang sering dipakai dalam kombinasi sistem yang menggunakan
interface PHP.
PHP sangat banyak
dipakai, mudah digunakan, gratis (free), dan efisien yang menjadi kompetitor Microsoft’s
ASP. Syntax (Bahasa Programnya) mirip dengan bahasa program Perl dan
C.
PHP sering
digunakan bersama Apache (Web Server) dalam berbagai Operating
System (OS) seperti Linux, Unix, dan Windows. PHP bisa juga berjalan bersama Microsoft’s
IIS pada Windows.
PHP sendiri
merupakan singkatan dari Personal Home Page tools. Skrip ini akan membuat suatu
aplikasi dapat diintegrasikan ke dalam HTML, sehingga suatu halaman web tidak
lagi bersifat statis, namun menjadi bersifat dinamis. Sifat server-side berarti
pengerjaan skrip akan dilakukan di server, baru kemudian hasilnya dikirimkan ke
browser. Keunggulannya dari sifatnya yang server-side tersebut antara lain:
• Tidak diperlukan
kompatibilitas browser atau harus menggunakan browser tertentu, karena serverlah
yang akan mengerjakan skrip PHP. Hasil yang dikirimkan kembali ke browser
umumnya bersifat teks atau gambar saja, sehingga pasti dikenal oleh browser
apapun.
• Dapat memanfaatkan sumber-sumber aplikasi yang dimiliki oleh server, misalnya koneksi ke database.
• Skrip tidak dapat “diintip” dengan menggunakan fasilitas view HTML source.
• Dapat memanfaatkan sumber-sumber aplikasi yang dimiliki oleh server, misalnya koneksi ke database.
• Skrip tidak dapat “diintip” dengan menggunakan fasilitas view HTML source.
Sebagai contoh,
perhatikan skrip PHP sederhana berikut ini:
<HTML>
<HEAD>
<TITLE> Contoh Skrip PHP </TITLE>
<BODY>
<?
Echo �<H1> Hallo, saya skrip PHP </H1>�;
?>
</BODY>
</HTML>
<HEAD>
<TITLE> Contoh Skrip PHP </TITLE>
<BODY>
<?
Echo �<H1> Hallo, saya skrip PHP </H1>�;
?>
</BODY>
</HTML>
Setelah skrip ini
dikerjakan di server, server akan memberikan output kepada browser sebagai
berikut:
<HTML>
<HEAD>
<TITLE> Contoh Skrip PHP </TITLE>
<BODY>
<H1> Hallo, saya skrip PHP </H1>
</BODY>
</HTML>
<HEAD>
<TITLE> Contoh Skrip PHP </TITLE>
<BODY>
<H1> Hallo, saya skrip PHP </H1>
</BODY>
</HTML>
Output inilah yang
dieksekusi oleh browser. Dengan output yang berupa tag-tag HTML biasa, maka
output tersebut pasti dapat dieksekusi oleh browser apapun. Sebagai
perbandingan dapat dilihat pada gambar 1 dan gambar 2 untuk eksekusi skrip PHP
pada Netscape dan pada IE.
Jika dibandingkan
dengan skrip yang bersifat client-side, misalnya VBScript atau JavaScript, maka
nampak nyata sifat browser independent tersebut. Perhatikan contoh berikut:
<HTML>
<HEAD>
<TITLE> Contoh JavaScript </TITLE>
<BODY>
<SCRIPT LANGUAGE=”JavaScript”>
document.write (“<H1> Hallo, saya skrip JavaScript </H1>”);
</SCRIPT>
</BODY>
</HTML>
<HEAD>
<TITLE> Contoh JavaScript </TITLE>
<BODY>
<SCRIPT LANGUAGE=”JavaScript”>
document.write (“<H1> Hallo, saya skrip JavaScript </H1>”);
</SCRIPT>
</BODY>
</HTML>
Jika skrip
tersebut di atas dijalankan pada browser yang tidak mendukung JavaScript, maka
browser tidak akan memberikan hasil apapun atau malah memunculkan teks yang
diapit oleh tag <SCRIPT> yaitu â��document.write (“<H1> Hallo, saya skrip
JavaScript </H1>”);â��.
Misalnya skrip
tersebut dijalankan pada NCSA Mosaic 3.0, hasilnya akan nampak seperti gambar
3. Namun jika NCSA Mosaic 3.0 tersebut menjalankan skrip PHP ternyata dapat
berjalan dengan baik
Kelebihan PHP
PHP dapat
“melakukan” semua aplikasi program CGI, seperti mengambil nilai form,
menghasilkan halaman web yang dinamis, mengirim dan menerima cookie. PHP juga
dapat berkomunikasi dengan layanan-layanan yang menggunakan protokol IMAP, SNMP,
NNTP, POP3, HTTP, dan lain-lain. Namun tampaknya kelebihan PHP yang paling
signifikan adalah kemampuannya untuk melakukan koneksi dengan berbagai macam
database. Saat ini, database yang didukung oleh PHP adalah:
• Adabas D
• InterBase
• PostgreSQL
• dBase
• FrontBase
• Solid
• Empress
• mSQL
• Sybase
• FilePro (read-only)
• Direct MS-SQL
• Velocis
• IBM DB2
• MySQL
• Unix dbm
• Informix
• Semua database yang mempunyai provider ODBC
• Ingres
• Oracle (OCI7 and OCI8)
• InterBase
• PostgreSQL
• dBase
• FrontBase
• Solid
• Empress
• mSQL
• Sybase
• FilePro (read-only)
• Direct MS-SQL
• Velocis
• IBM DB2
• MySQL
• Unix dbm
• Informix
• Semua database yang mempunyai provider ODBC
• Ingres
• Oracle (OCI7 and OCI8)
Struktur Skrip
Seperti telah
dibahas minggu lalu, skrip PHP ditambahkan ke dalam HTML dengan menggunakan
delimiter khusus. Delimiter merupakan karakter atau kumpulan karakter yang
membedakan antara skrip atau tag dengan teks biasa dalam HTML. Seperti kita
ketahui, delimiter untuk tag HTML adalah karakter <>. Untuk PHP,
delimiter yang digunakan adalah sebagai berikut:
1. Untuk dokumen
SGML/HTML biasa:
<? Skrip PHP
?> atau <?php skrip php ?>
2. Untuk dokumen
XML:
<?php skrip PHP
?>
3. Untuk editor
yang tidak mendukung PHP:
<script
language=�php�>
skrip php
</script>
skrip php
</script>
4. Dapat juga
menggunakan delimiter ASP:
<% skrip PHP
%>
Baris-baris pada
skrip PHP dipisahkan dengan cara yang sama dengan C atau Perl, yaitu dengan
menambahkan karakter titik koma (;). Contoh:
<?
Skrip php;
Skrip php;
?>
Skrip php;
Skrip php;
?>
Jika terdapat
skrip yang hanya terdiri dari satu baris, ada dua gaya penulisan yang dapat
digunakan:
<?
Skrip php;
?>
Skrip php;
?>
Atau:
<? Skrip php
?>
Jika digunakan
gaya penulisan yang kedua, tanda titik koma tidak perlu digunakan, karena tag
penutup ?> sudah menandakan akhir dari skrip tersebut.
Untuk menambahkan komentar dalam skrip PHP dapat digunakan gaya C, C++, atau shell UNIX. Contoh:
Untuk menambahkan komentar dalam skrip PHP dapat digunakan gaya C, C++, atau shell UNIX. Contoh:
<?php
skrip php; // Komentar satu baris gaya C++
/* Komentar yang panjangnya
lebih dari satu baris */
skrip php;
skrip php; # Komentar gaya shell UNIX
?>
skrip php; // Komentar satu baris gaya C++
/* Komentar yang panjangnya
lebih dari satu baris */
skrip php;
skrip php; # Komentar gaya shell UNIX
?>
Pengenalan
struktur PHP ini merupakan dasar dari pelajaran mengenai PHP. Karena itu
perhatikan baik-baik dan minggu depan kita akan mencoba membuat skrip-skrip PHP
sederhana.