Anda di halaman 1dari 26

BAB VIII BASIS DATA MYSQL

8.1. Pengantar MYSQL


Basis data adalah sekumpalan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah sekumpulan data yang diproses dengan bantuan komputer yang memungkinkan data dapat diakses dengan mudah dan tepat, yang dapat digambarkan sebagai aktifitas dari satu atau lebih organisasi yang berelasi. Sebagaimana diketahui manajemen modern mengikutsertakan informasi sebagai sumber daya penting yang setara dengan sumber daya manusia, uang, mesin dan material. Informasi adalah suatu bentuk penyajian data yang melalui mekanisme pemrosesan, berguna bagi pihak tertentu misalnya manajer. Bagi pihak manajemen, informasi merupakan bahan bagi pengambilan keputusan. MYSQL termasuk jenis RDBMS (Relasional Database Management System). Sedangkan RDBMS sendiri akan lebih banyak mengenal istilah seperti tabel, baris dan kolom digunakan dalam perintah-perintah di MYSQL. MYSQL merupakan sabuah basis data yang mengandung satu atau sejumlah tabel. Tabel

190

terdiri atas sejumlah baris dan setiap baris mengandung satu atau beberapa kolom. Didalam PHP telah menyediakan fungsi untuk koneksi ke basis data dengan sejumlah fungsi untuk pengaturan baik menghubungkan maupun memutuskan koneksi dengan server database MySQL sebagai sarana untuk mengumpulkan informasi.

8.1.1. Pengertian
Database MYSQL merupakan sistem manajemen basis data SQL yang sangat terkenal dan bersifat Open Source. MySQL dibangun, didistribusikan dan didukung oleh MYSQL AB. MYSQL AB merupakan perusahaan komersial yang dibiayai oleh pengembang MYSQL. Sebenarnya software MYSQL mempunyai dua macam lisensi. Lisensi pertama bersifat open source dengan menggunakan GNU General Public Lisensi dan lisensi kedua berupa lisensi komersial standar (standard commercial license) yang dapat dibeli dari MYSQL AB. MYSQL dapat didefinisikan sebagai sistem manajemen database. Database sendiri merupakan struktur penyimpanan data. Untuk menambah, mengakses dan memproses data yang disimpan dalam sebuah database komputer, diperlukan sistem manajemen database seperti MYSQL Server. Selain itu MYSQL dapat dikatakan sebagai basis data terhubung (RDBMS).

191

Database terhubung menyimpan data pada tabel-tabel terpisah. Hal tersebut akan menambah kecepatan dan fleksibilitasnya. Server database MYSQL mempunyai kecepatan akses tinggi, mudah digunakan dan andal. MYSQL dikembangkan untuk menangani database yang besar secara cepat dan telah sukses digunakan selama bertahun-tahun sehiingga membuat server MYSQL cocok untuk mengakses database diinternet. Dan MYSQL juga merupakan sistem client-server yang terdiri atas multithread SQL Server yang mendukung software client dan library yang berbeda. Fitur utama MYSQL adalah ditulis dalam bahasa C dan C+ +, bekerja dalam berbagai platform, menyediakan mesin penyimpan transaksi dan nontransaksi, mempunyai library yang dapat ditempelkan pada aplikasi yang berdiri sendiri sehingga aplikasi tersebut dapat digunakan pada komputer yang tidak mempunyai jaringan dan mempunyai sistem password yang fleksibel dan aman, dapat menangani basis data dalam skala besar.

8.1.2. Tipe Data


Data yang terdapat dalam sebuah tabel berupa field-field yang berisi nilai dari data tersebut. Nilai data dalam field

192

memiliki tipe sendiri-sendiri. MYSQL mengenal beberapa tipe data field yaitu : Tipe data numerik Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer dan floating point. Integer digunakan untuk data bilangan bulat sedangkan floating point digunakan untuk bilangan desimal. Tipe data numerik selengkapnya dapat dilihat pada tabel 8.1 berikut ini: Tabel 8.1 Tipe Data Numerik Tipe Data TINYINT SMALLINT MEDIUMINT INT, INTEGER FLOAT DOUBLE Kisaran Nilai (-128)-127 atau (0-255) (-32768)-32767 atau (0-65535) (-3888608)-8388607 atau 0-16777215 (-2147683648)-(21447683647) atau 04294967295 (-3.4 E+38)-(-1.17E-38), 0 dan 1.175E38-3.4e+38 (-1.79E+308)-(-2.225E-308), 2.225E-308 1.79E+308 0 dan

Tipe data string

193

String adalah rangkaian karakter. Tipe-tipe data yang termasuk dalam tipe data string dapat dilihat pada tabel 8.2 berikut: Tabel 8.2 Tipe Data String Tipe Data CHAR VARCHAR TINYTEXT TEXT MEDIUMTEXT LONGTEXT Kisaran Nilai 1-255 karakter 1-255 karakter 1-255 karakter 1-65535 karakter 1-16777215 karakter 1-424967295 karakter

Tipe data char() dan varchar() Tipe data char() dan varchar() pada prinsipnya sama, perbedaannya hanya terletak pada jumlah memori yang dibutuhkan untuk penyimpanannya. Memori yang dibutuhkan untuk tipe data char() bersifat statis, besarnya bergantung pada berapa jumlah karakter yang ditetapkan pada saat field tersebut dideklarasikan. Pada tipe data varchar() besarnya memori penyimpanan tergantung pada jumlah karakter ditambah 1 byte, dapat dilihat pada tabel 8.3 berikut ini:

194

Tabel 8.3 Letak Perbedaan Jumlah Memori Nilai ab abcd abcdefgh Tipe data tanggal Untuk tanggal dan jam, tersedia tipe-tipe data field berupa DATETIME, DATE, TIMESTAMP, TIME dan YEAR. Masing-masing tipe mempunyai kisaran nilai tertentu. MYSQL akan memberikan peringatan kesalahan (error) apabila tanggal atau waktu yang dimasukkan salah. Kisaran nilai dan besar memori penyimpanan yang diperlukan untuk masing-masing tipe dapat dilihat pada tabel 8.4 berikut ini: Char(4) Memori ab abcd abcd Penyimpanan 4 bytes 4 bytes 4 bytes 4 bytes Varchar Memori (4) ab abcd abcd Penyimpanan 1 byte 3 bytes 5 bytes 5 bytes

Tabel 8.4 Tipe Data Tanggal Tipe Data DATETIME Kisaran Nilai Memori Penyimpanan 1000-01-01 00:00 sampai 3 byte

195

DATE TIMESTAMP TIME YEAR

9999-12-31 23:59:59 1000-01-01 sampai 9999- 8 byte 12-31 1970-01-01 sampai 2037 -839:59:59 838:59:59 1901 sampai 2155 00:00:00 4 byte sampai 3 byte 1 byte

8.1.3. Operator MYSQL


MYSQL mendukung penggunaan operator-operator dan fungsi-fungsi diantaranya: Operator Aritmetika Suatu ekspresi yang melibatkan tipe data bilangan (NUMERIK) dan tanggal (DATE) menggunakan ekspresi aritmatika. Dapat dilihat pada tabel 8.5 berikut ini:

Tabel 8.5 Operator aritmatika MYSQL Operator + * / Mod () Contoh: Keterangan Tambah Kurang Kali Bagi Modulus

196

Operator Pembandingan Suatu ekspresi yang dapat digunakan pada klausa WHERE dan mempunyai sintax sebagai berikut: WHERE expr operator value. Tabel 8.6 menunjukan operator pembanding pada MYSQL berikut ini: Tabel 8.6 Operator Pembanding MYSQL Operator = > < >= <= <> Contoh: Keterangan Sama Dengan Lebih Besar Lebih Kecil Lebih Besar atau Sama Dengan Lebih Kecil atau Sama Dengan Tidak Sama Dengan

Operator Logika Operator ini digunakan untuk membandingkan dua nilai variabel yang bertipe boolean. Tabel 8.7 berikut menunjukkan operator logika pada MYSQL: Tabel 8.7 Operator Logika MYSQL

197

Operator AND OR NOT Contoh:

Keterangan Dan Atau Tidak

Operator Karakter Operator untuk membentuk pencarian string yang sesuai dengan nilai yang mencantumkan pada kondisi. Kondisi pencarian dapat berisi karakter , ada 3 symbol khusus berikut ini dapat dilihat pada tabel 8.8 berikut ini: Tabel 8.8 Tabel Operator Karakter Operator % _ [] Contoh: Keterangan Sembarang karakter berapapun

jumlahnya Sembarang satu karakter Sembarang karakter yang terletak dalam kurung siku

Operator Lain-lain

198

Operator yang digunakan untuk menguji nilai-nilai yang ada dalam list (tanda kurung) dan dapat juga untuk menampilkan baris berdasarkan suatu jangkauan (range) nilai. Ada 2 symbol tersebut dapat dilihat pada tabel 8.9 berikut ini: Tabel 8.9 Operator lain-lain Operator IN BETWEEN Contoh: Keterangan Dalam Diantara

Fungsi Agregat Fungsi agregat (kadangkala disebut fungsi grup atau fungsi ringkasan) adalah fungsi yang disedikan oleh SQL untuk menghasilkan sebuah nilai berdasarkan sejumlah data. Fungsi sendiri adalah seuatu kumpulan instruksi yang menghasilkan sebuah nilai jika dipanggil. Fungsi ini juga digunakan pada data numeric untuk menghitung nilai baik rata-rata dan jumlah dari sekumpulan data maupun pencarian jumlah baris dalam tabel. Untuk lebih jelasnyadapat dilihat dalam tabel 8.10 berikut ini:

199

Tabel 8.10 Fungsi Agregat Operator COUNT SUM AVG MAX MIN Contoh: Keterangan Menghitung jumlah baris suatu field Menjumlahkan data-data numerik pada suatu tabel Menghitung rata-rata suatu field Menghitung nilai maksimum suatu field Menghitung nilai minimum suatu field

8.2. Perintah-Perintah Pada MYSQL


Query sebenarnya berarti permintaan atau perintah. Dengan menggunakan query, maka dapat melihat, mengubah dan menganalisis data dengan berbagai titik pandang yang dikehendaki. Selain itu, query juga dapat dipakai sebagai data bagi formulir, laporan dan bahkan halaman web. Yang dimaksud dengan query pada MYSQL adalah query yang diciptakan dengan pernyataan-pernyataan SQL. SQL (Structured Query Language) adalah bahasa pemrograman yang digunakan untuk mengakses basis data relasional. SQL diciptakan oleh perusahaan IBM sekitar tahun 1970, pada waktu yang bersamaan dengan diperkenalkannya konsep relasional database. Setelah mengalami banyak perkembangan, pada masa kini SQL

200

sudah merupakan bahasa yang lazim digunakan dalam dunia database. Bahasa SQL dapat digolongkan bahasa generasi ke-4 yang tidak berupa bahasa yang berstruktur dan beraturan seperti C dan Pascal (golongan bahasa generasi ke-3). Oleh karena itu bahasa SQL mudah dipelajari. Pernyataan (statement) SQL dapat digolongan atas tiga golongan yaitu: Data Definition Language (DDL) yang mendefinisikan struktur suatu data. Perintah-perintah SQL yang termasuk DDL antara lain adalah: CREATE untuk membuat ALTER untuk mengubah DROP untuk menghapus

Data Manipulation Language (DML) yang dapat mencari (query) dan mengubah (modify) suatu tabel. Perintah-perintah SQL yang tergolong DML diantaranya: SELECT untuk membaca INSERT untuk memasukkan UPDATE untuk mengubah DELETE untuk menghapus

201

Data Control Language (DCL) yang mengatur hak-hak (privilege) untuk seorang pemakai database.Perintah-perintah SQL yang trgolong DCL diantaranya: GRANT REVOKE

Semua bahasa pemrograman mempunyai aturan gramatika. Beberapa aturan perlu diperhatikan pada saat menuliskan perintah-perintah bahasa SQL pada MYSQL adalah: 1. Semua pernyataan SQL ditutup dengan tanda koma (,). 2. Perintah SQL dapat ditulis dalam satu baris atau dipisah-pisah dalam beberapa baris agar mudah dibaca. 3. SQL tidak membedakan huruf besar atau kecil (not case sensitive), tergantung bagaimana isi tabel dimasukkan. 4. Isi dari tabel peka terhadap huruf besar atau kecil tergantung bagaimana isi tabel dimasukkan. 5. Pernyataan SQL harus ditulis menurut sintaks tertentu. 6. Pernyataan SQL dapat diberikan baris komentar untuk dokumentasi serta menjelaskan maksud pemrograman.

8.2.1. Create Database


Untuk membuat database dapat dilakukan dengan perintah sebagai berikut:

202

CREATE DATABASE <nama_database>; Jika ada komentar Query OK berarti database telah terbuat. Contoh: CREATE DATABASE unijoyo;

8.2.2. Create Tabel


Dengan menggunakan SQL, maka bisa membuat tabel. Pernyataan Syntaxnya: CREATE TABLE nama_tabel ( nama kolom 1 tipe data ([ukuran]), nama kolom 2 tipe data ([ukuran]), ...... nama kolom n tipe data ([ukuran])); Contoh: yang digunakan berupa CREATE TABLE.

203

8.2.3. Perintah Select, Insert, Delete, Update, Alter dan Drop


Sebuah pernyataan pada SQL berupa perintah yang meminta sesuatu tindakan DBMS. Sebuah pernyataan diakhiri dengan tanda titik koma (;). Seperti:

PERINTAH SELECT: SELECT adalah pernyataan yang berguna untuk memperoleh data dari sebuah atau beberapa table. Dengan dukungan berbagai klausa seperti WHERE dan GROUP BY, SELECT dapat digunakan untuk memperoleh data dalam bentuk yang sederhana hingga bentuk yang kompleks seperti untuk memperoleh ringkasan data. Contoh:

PERINTAH INSERT: Pernyataan INSERT digunakan untuk menambah data. Perintah INSERT dalam SQL adalah:

204

INSERT INTO nama table [(nama kolom 1, nama kolom 2, .., nama kolom n)] VALUE ( Ekspresi [.Ekspresi].) | Query); Contoh :

PERINTAH DELETE: Perintah DELETE digunakan untuk menghapus data pada table. Bentuk umum pernyataan DELETE : DELETE FROM nama table [WHERE kondisi]; Contoh:

PERINTAH UPDATE: Pernyataan UPDATE berguna untuk mengubah data. Bentuk umum perintah UPDATE : UPDATE nama table SET kolom 1 = nilai baru 1, kolom 2 = nilai baru 2, ., kolom n = nilai baru n [WHERE kondisi]; Contoh :

205

PERINTAH ALTER: Perintah ini digunakan untuk mengubah (modify) table yang telah dibuat, seperti: menambah kolom baru, mengubah ukuran kolom, dan mengubah aturan-aturan yang berlaku untuk suatu kolom. Syntaxnya yang dapat dipakai sebagai berikut: ALTER TABLE nama table [ADD (nama kolom) MODIFY (nama kolom) DROP nama constraint ]; Contoh:

PERINTAH DROP: Apabila bermaksud untuk menghapus suatu table karena table tersebut tidak diperlukan maka bisa melakukannya dengan memakai pernyataan DROP TABLE. Dengan syntaxnya: DROP TABLE nama table [CASCADE CONSTRAINTS]; Contoh:

206

8.3. Predikat MYSQL Predikat diletakkan setelah klausa WHERE untuk pencarian record database agar mendapatkan string, karakter atau range tertentu. 1. LIKE dan NOT LIKE LIKE digunakan untuk mendapatkan record yang memenuhi sebagian kriteria pencarian yaitu mencari data yang menyerupai atau seperti. Perintah LIKE sering dikombinasikan dengan tanda persen (%) dan underscore (_). % digunakan di awal atau akhir teks kriteria sedangkan _ dimanapun diinginkan. Syntax dasar dari SELECT yang melibatkan LIKE adalah: select kolom1, kolom2, [] FROM NAMA_TABEL WHERE kolom_tabel LIKE %string%; NOT LIKE merupakan lawan dari LIKE. Semua data yang masuk kriteria LIKE secara otomatis tidak masuk kriteria NOT LIKE. 2. BETWEEN Digunakan untuk menyeleksi nilai-nilai yang berada dalam kisaran (range), misalnya menampilkan student yang

207

mempunyai IPK antara 3,00 sampai 3,50. Sintaks perintah SELECT dengan BETWEEN adalah select kolom1, kolom2, [] FROM NAMA_TABEL WHERE nama_kolom BETWEEN nilai1 and nilai2; 3. LIMIT Memungkinkan pembatasan jumlah record yang diambil dari database. Sintaks: select kolom1, kolom2, [] FROM NAMA_TABEL LIMIT jumlah_limit; 4. INNER JOIN JOIN digunakan bersama SELECT untuk mengkombinasikan kolom dari satu tabel dengan kolom pada tabel lain. Proses utama yang dilakukan oleh JOIN adalah mencocokkan nilai pada field kunci pada kedua table. INNER JOIN mengembalikan semua baris sebagai hasil yang memenuhi suatu kondisi 5. LEFT JOIN Suatu LEFT JOIN mengembalikan semua baris sisi kiri kondisional bahkan jika tidak ada sisi kanan yang memenuhi sekalipun

208

6. RIGHT JOIN Suatu RIGHT JOIN akan menampilkan baris-baris sisi kanan kondisional yang memenuhi atau tidak memenuhi kondisi. 7. UNION Untuk menggabung dua tabel, menempatkan dua query terpisah secara bersama membentuk satu table. UNION akan memberikan hasil terbaik saat menggunakan dua tabel dengan kolom serupa karena setiap kolom harus mempunyai tipe data sama. Sintaks dasar: select kolom1, kolom2 FROM NAMA_TABEL UNION select kolom1, kolom2 FROM NAMA_TABEL; 8. UNION ALL Memilih semua baris dari setiap tabel dan mengkombinasikannya ke dalam satu tabel. Perbedaan antara UNION dan UNION ALL yaitu UNION ALL tidak akan menghapus (mengeliminir) baris-baris yang sama ( duplicate rows) hanya mengambil semua baris dari semua tabel sesuai query yang dikirim ke server database. 9. Sub-Query

209

Merupakan query SELECT yang ditempatkan di dalam suatu pernyataan SQL lain. Dapat diletakkan sebagai bagian dari query utama : SELECT, INSERT, UPDATE, DELETE, SET, DO. Sintaks: select kolom1, kolom2, kolom3 [] FROM NAMA_TABEL WHERE kolom_tabel = (select kolom1, kolom2, kolom3 [] FROM NAME_TABEL_LAIN);

8.4. Fungsi Pada MYSQL


PHP menyediakan fungsi untuk koneksi ke database dengan sejumlah fungsi untuk pengaturan baik menghubungkan maupun memutuskan koneksi dengan server database MySQL. Fungsi koneksi ke server database mengunakan pola yang sama yaitu server, port, user, password. Fungsi-fungsi tersebut adalah: 1. mysql_connect(host,user,password) Fungsi ini digunakan untuk membuka koneksi dengan server MySQL. Parameter yang digunakan sebagai berikut: Host: nama server dengan server local menggunakan localhost. User: user yang terdaftar dalam MySQL yang digunakan untuk login ke server. dapat dengan

210

Password: password dari user yang melakukan koneksi. Contoh:

2.

mysql_select_db(nama_database,nama_koneksi) Fungsi ini digunakn untuk memilih database yang akan

digunakan. Contoh:

3.

mysql_query(perintah_query,nama_koneksi) Perintah ini digunakan untuk mengirimkan query ke server

database melalui link nama koneksi. Fungsi ini mengembalikan nilai FALSE baik CREATE, UPDATE, DELETE, DROP, dll. Contoh:

4.

mysql_fetch_array(hasil_query) Fungsi ini digunakan untuk melakukan pembacaan record

hasil query yang dilakukan. Pembacaan ini dilakukan mulai dari record pertama sampai nilai terakhir. Tiap record dibaca, dibentuk

211

menjadi array dengan index numeric dari 0 sampai dengan n-1 dan index assosiatif dengan index adalah nama field dari table. 5. mysql_fetch_row(hasil_query) Fungsi ini mempunyai hampir sama dengan

mysql_fetch_array tetapi array hasil pembacaan data hanya menggunakan index numeris saja yang dimulai dari 0 untuk kolom pertama samapai n-1 untuk kolom terakhir hasil query.

6.

mysql_result(hasil_query, no_record,nama_field), Fungsi ini berguna untuk mengambil langsung nilai hasil

query pada suatu baris dan kolom tertentu (satu sel) dengan menyebutkan parameter variabel hasil proses query, no_record, untuk nomor baris (dimulai dari 0) dan nama field. 7. mysql_num_field(hasil_query) Fungsi berguna untuk mendapatkan jumlah field dari hasil query. Contoh:

8.

mysql_num_rows(hasil_query)

212

Fungsi ini berguna untuk mendapatkan jumlah baris dari hasil query. Menghasilkan suatu array yang berisi seluruh kolom dari sebuah baris pada suatu himpunan hasil. Mengambil data secara baris per baris. Data yang diambil dalam bentuk array (elemen dari array adalah field-field dari tabel data). Contoh:

8.5.

Kesimpulan
MYSQL termasuk jenis RDBMS (Relasional Database Management System). Database MYSQL merupakan sistem manajemen basis data SQL yang sangat terkenal dan bersifat Open Source. MYSQL mengenal beberapa tipe data field yaitu : Tipe data numerik, Tipe data string, Tipe data char() dan varchar() serta Tipe data tanggal. MYSQL mendukung penggunaan operator-operator dan fungsi-fungsi diantaranya: Operator Aritmetika, Operator Pembandingan, Operator Logika, Operator Karakter, Operator Lain-lain seperti: IN, BETWEEN dan Fungsi Agregat.

Dengan menggunakan query, maka dapat melihat, mengubah dan menganalisis data dengan berbagai titik pandang yang dikehendaki. Yang dimaksud dengan query pada MYSQL adalah query yang diciptakan dengan pernyataan-pernyataan SQL. SQL (Structured Query Language) adalah bahasa pemrograman yang digunakan untuk mengakses basis data

213

relasional. Pernyataan (statement) SQL dapat digolongan atas tiga golongan yaitu: Data Definition Language (DDL), Data Manipulation Language (DML) dan Data Control Language (DCL). Predikat diletakkan setelah klausa WHERE untuk pencarian record database agar mendapatkan string, karakter atau range tertentu. Seperti : LIKE dan Not Like, Between, Limit, Inner Join, Left Join, Right Join, Union dan lain sebagainya. PHP juga menyediakan fungsi untuk koneksi ke database dengan sejumlah fungsi untuk pengaturan baik menghubungkan maupun memutuskan koneksi dengan server database MySQL. Fungsi koneksi ke server database mengunakan pola yang sama yaitu server, port, user, password. Fungsi-fungsi tersebut adalah: mysql_connect (host, user, password), mysql_select_db (nama_database, nama_koneksi), mysql _query(perintah_query, nama_kondisi), mysql_fetch_array (hasil_query), mysql mysql_fetch_row(hasil_query) dan lain sebagainya.

8.6. Latihan Soal


1. Bagaimana perintah SQL untuk menampilkan: a. semua pegawai yang lahir antara tahun 1980-an b. semua pegawai yang namanya berawalan bukan A c. semua mahasiswa yang mempunyai nilai A

214

d. semua nama mahasiswa yang berawalan D, R atau A. 2. Apakah statement SELECT berikut ini apat dijalankan dengan benar? SELECT nama, pekerjaan, gaji as salary FROM pegawai; 3. Temukan empat kesalahan pada statement SELECT berikut: SELECT no_pegawai, nama_pegawai, gaji x 12 gaji setahun FROM pegawai; 4. Buatlah query untuk menampilkan nama dan gaji dari pegawai yang memiliki gaji lebih dari 2000000. 5. Tampilkan nama dan gaji untuk semua pegawai yang memiliki gaji yang tidak berada dalam range antara 1000000 sampai 3000000.

215

Anda mungkin juga menyukai