616fd modul praktikum sistem basis data

(1)

Modul Praktikum Sistem Basis Data ... 1

PRAKTIKUM I

MENGGUNAKAN SOFTWARE DATABASE MySQL

A. LATAR BELAKANG

Banyak pilihan software yang dapat digunakan untuk belajar manajemen sistem basisdata, khususnya untuk membangun desain database secara konsep dan diimplementasikan secara fisik ke sebuah server database. Kecendrungan yang terjadi di masyarakat saat ini adalah bahwa sebuah software manajemen sistem basisdata tidak hanya hadir sebagai perangkat lunak untuk melakukan menajemen data (Create, Read, Update dan Delete) saja, namun harus terintegrasi juga dengan perangkat lunak untuk mendesain database secara konsep yang kemudian dapat digenerate secara fisik ke sebuah server database.

Software MySQL versi 5.0.20 sebagai software manajemen sistem basisdata telah hadir dengan berbagai kelebihannya, diantaranya adalah (a) lintas platform; (b) relatif tanpa biaya; (c) memiliki dukungan replikasi data secara real time; (d) mampu menangani banyak data dengan kecepatan tinggi (kapabilitas tinggi); (e) mudah diperoleh dan digunakan serta (f) dilengkapi dengan perangkat lunak pendukung untuk desain database secara konsep dan untuk keperluan pengoperasian dan administrasi server database MySQL. Dengan demikian pemilihan software MySQL sangat relevan digunakan dan dikuasai oleh mahasiswa, khususnya sebagai perangkat lunak untuk belajar manajemen sistem basisdata.

B. TUJUAN

Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat;

1. Melakukan instalasi software database MySQL versi 5.0.20 dan software MySQL GUI Tools versi 5.0 secara mandiri dengan baik dan benar

2. Melakukan troubleshooting dan testing koneksi pada komputer Server dan Client guna memastikan bahwa Server database MySQL telah aktif dan dapat digunakan secara bersama-sama dalam lingkup jaringan.


(2)

Modul Praktikum Sistem Basis Data ... 2

C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN

Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan software yang dibutuhkan sebelum melakukan praktikum ini adalah;

1. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan menggunakan kabel maupun dengan jaringan tanpa kabel (nirkabel)

2. LCD viewer sebagai media presentasi instruktur

3. Software berupa file MySQL-5.0.20.EXE untuk instalasi server database MySQL versi 5.0.20, dan File mysql-gui-tools-5.0-r8-win32.msi, untuk instalasi software pendukung (tools) pengoperasian dan administrasi server database MySQL,

D. TEORI DASAR

MySQL merupakan salah satu sistem manajemen database relasi (relational data system) yang bersifat terbuka (open source) dan dikembangkan pertama kalinya oleh Michael Wonty, David Axmark, dan Allan Larson pada tahun 1995, yang kemudian mendirikan perusahaan bernama MySQL-AB di Swedia. Tujuan awal dibuatnya program MySQL, adalah untuk mengembangkan aplikasi web yang akan digunakan oleh salah satu klien MySQL-AB. Memang pada saat itu, MySOL-AB adalah sebuah perusahaan konsultan database dan pengembang software.

Pada awalnya MySQL hanya berjalan di atas platform sistem operasi UNIX, bahkan hampir semua distro UNIX yang beredar saat ini telah memasukkan program MySQL sebagai database management system standartnya. Saat ini MySQL dapat pula berjalan di banyak sistem operasi, seperti Microsoft Windows, Solaris, FreeBSD, Mac OS X, HP UX, IBM AIX, SCO Unix dan sebagainya. Database MySQL memiliki kinerja, kecepatan proses, dan ketangguhan yang tidak kalah dibanding aplikasi database management system besar lainnya yang kornersil, seperti ORACLE, Sybase, Microsoft SQL Server, Unify, dan sebagainya. Dengan Open Source, MySOL berkembang menjadi salah satu sistem manajemen database relasi terkemuka yang diakui secara internasional.

Beberapa pertimbangan mengapa memilih MySQL sebagai program aplikasi database management system, diantaranya adalah :


(3)

Modul Praktikum Sistem Basis Data ... 3 Kecepatan Berdasarkan hasil pengujian, MySQL memiliki kecepatan paling baik dibanding database server lainnya. Hasil pengujian ini dapat kita lihat dalam http://www.mysql. Conirinfomiation/bencmarks.html. Kemudian, dengan adanya fitur tambahan Query Caching pada MySQL 4.0, kinerja query secara umum naik rata-rata 200% dari kinerja biasanya.

Mudah digunakan. Perintah-perintah dan aturan-aturan pada MySQL dan proses instalasinya relatif mudah digunakan.

Open Source. Dengan konsep ini siapa pun dapat berpartisipasi untuk mengernbangkan MySQL dan hasil pengembangan itu dirilis untuk konsumsi umurn atau untuk kornunitas Open Source.

Kapabilitas. MySOL telah diujicobakan untuk mengelola database dengan jumlah tabel 60.000 dan jumlah recordnya mencapai 5.000.000.000, dimana hasil uji coba tersebut berjalan dengan baik. Selain itu MySQL mendukung penggunaan index hingga 32 buah index per-tabelnya, sedangkan setiap indexnya terdiri dari 1 hingga 16 kolom kriteria.

Replikasi data. Dengan adanya fasilitas replikasi data ini, memungkinkan untuk dapat mempunyai beberapa database bayangan yang berasal dari satu database induk.  Biaya rendah (relatif gratis). Dapat menggunakan MySQL tanpa harus memikirkan

biaya lisensi selama mengikuti konsep Open Source/GNU Public Licences.

Konektifitas dan keamanan. MySQL mendukung dan menerapkan sistem keamanan dan izin akses tingkat lanjut (advanced permissions and secury system), termasuk dukungan pengamanan dengan cara pengacakan lapisan data (SSL transport layer encryption).

Lintas platform sistem operasi. MySQL dapat dijalankan pada beberapa sistem operasi yang berbeda, seperti Linux, Microsoft Windows, FreeBSD, Sun Solaris, IBM's AIX, Mac OS X, HP-UX, AIX, QNX, Novell NetWare, dan SCO OpenUnix. Terdapat dua perangkat lunak (software) utama, untuk keperluan pengoperasian dan administrasi server database MySQL. Selain software server database MySQL-nya sendiri, pengembang juga telah menyediakan software pendukung (tools) untuk manajemen database, user dan server yang berbasis GUI. Sejak MySQL versi 5 dirilis, software


(4)

Modul Praktikum Sistem Basis Data ... 4 pendukung (tools) telah terpaket dengan baik dalam satu file instalasi. Software-software tersebut dapat di-download secara gratis di situs http://www.mysql.com.

Dua file instalasi yang dimaksud adalah MySQL-5.0.20.EXE dan file mysql-gui-tools-5.0-r8-win32.msi. File MySQL-5.0.20.EXE adalah file instalasi untuk server database MySQL versi 5.0.20. File mysql-gui-tools-5.0-r8-win32.msi, merupakan file instalasi software pendukung (tools) untuk keperluan pengoperasian dan administrasi server database MySQL, yang berisi program-program berikut;

 MySQL Administration  MySQL Migration Toolkit  MySQL Query Browser  MySQL System Tray Monitor

 MySQL Workbench

Untuk dapat bekerja dengan database MySQL, diperlukan 2 hal pokok, yaitu mempunyai user login yang sah, serta sekumpulan hak akses. Pada pengoperasian pertama, setelah instalasi server database MySQL sukses dilakukan, kita mempunyai satu user login bernama root, dengan hak akses penuh dan merupakan level tertinggi dalam komunitas pengguna server database MySQL. Dengan user root tersebut, kita dapat melakukan apa saja, seperti membuat user baru beserta hak aksesnya, membuat dan menghapus objek-objek dalam MySQL atau yang lainnya.

E. LANGKAH-LANGKAH PRAKTIKUM

1. Instalasi Server Database MySQL

Proses penyiapan server database MySQL melalui tahapan instalasi server database MySQL, atur konfigurasi dan mengaktifkan server database MySQL dan diakhiri dengan cek koneksi Server-Client. Proses instalasi server MySQL, dapat dilakukan dengan cara berikut;


(5)

Modul Praktikum Sistem Basis Data ... 5 Gambar 1: File MySQL-5.0.20.EXE Pada Windows Explorer

a. Lakukan double-click atau tekan Enter pada file MySQL-5.0.20.EXE

b. Click Next setelah layar Welcome to the Setup Wizard for MySQL Server 5.0 tampil c. Pilih salah satu tipe instalasi yang diinginkan, paling mudah pilih Typical, dan

kemudian tekan Next

Gambar 2: Pilihan Setup Type

d. Tampilan berikutnya konfirmasi bahwa program MySQL akan diinstall ke dalam direktori C:\Program Files\MySQL\MySQL Server 5.0\. Karena kita menggunakan jenis instalasi Typical, maka direktori instalasi tidak dapat kita ubah (kecuali bila menggunakan tipe instalasi Custom pada langkah sebelumnya). Selanjutnya click tombol Install untuk melanjutkan,


(6)

Modul Praktikum Sistem Basis Data ... 6 Gambar 3: Konfirmasi Terakhir Sebelum Instalasi MySQL

e. Proses instalasi server database MySQL sedang berjalan. Tunggu beberapa saat hingga proses instalasi selesai.

Gambar 4: Proses Instalasi Server MySQL Sedang Berlangsung

f. Kemudian disarankan untuk melanjutkan ke proses konfigurasi MySQL server (Configure the MySQL Server now). Beri tanda terpilih pada kotak Configure the MySQL Server now, dan lanjutkan dengan menekan tombol Finish untuk tahapan ini (yang akan dilanjutkan dengan proses konfigurasi server MySQL)


(7)

Modul Praktikum Sistem Basis Data ... 7 Gambar 5: Akhir Proses Instalasi Server MySQL

g. Click Next pada form Welcome to the MySQL Server Instance Configuration Wizard, untuk melanjutkan proses konfigurasi server MySQL

h. Untuk proses konfigurasi yang paling mudah, pilih Standart Configuration, kemudian click Next

Gambar 6: Pilihan Proses Konfigurasi Server MySQL

i. Lakukan pilihan terhadap Install As Windows Service, Launch the MySQL Server automatically dan Include Bin Directory in Windows PATH seperti pada gambar 9, kemudian click Next.


(8)

Modul Praktikum Sistem Basis Data ... 8 Gambar 7: Pilihan Konfigurasi Server MySQL untuk Keperluan Sistem Windows

Gambar 8: Seting untuk Keperluan Keamanan

j. Tampilan berikutnya, mengenai sistem keamanan server MySQL. Sebaiknya memberikan password khusus sebagai root, dan tidak memberikan peluang kepada orang lain untuk memasuki server MySQL tanpa password. Maka aktifkan pilihan Modify Security Setting dan masukkan password root dengan seksama. Sebelumnya, matikan pilihan Create An Anonymous Account, dengan demikian tidak sembarangan orang dapat masuk menggunakan MySQL server. Satu hal lagi, disarankan mematikan pilihan Enable Root access from remote machines, ini untuk


(9)

Modul Praktikum Sistem Basis Data ... 9 mencegah celah yang bisa digunakan oleh orang yang tidak bertanggungjawab masuk ke dalam server MySQL. Lanjutkan dengan menekan tombol Next.

k. Lakukan eksekusi konfigurasi dan pengaktifan server MySQL (start service MySQL), dengan cara click Execute.

Gambar 9: Konfirmasi Terakhir Sebelum Mengeksekusi Konfigurasi

l. Bila tidak ada kendala apapun, maka selesailah keseluruhan proses instalasi dan setting pada program MySQL 5.0.x. Click Finish untuk menuntaskan proses ini.


(10)

Modul Praktikum Sistem Basis Data ... 10 m. Cek service MySQL dengan cara click menu Start  Settings Control Panel

double click pada Administrative Tools  double click pada Services. Jika status service dari MySQL adalah Started, maka server MySQL telah terinstal dan running/aktif di sistem.

Gambar 11: Service Status Server MySQL di Sistem Operasi Windows

2. Instalasi Software MySQL GUI Tools

a. Lakukan double-click atau tekan Enter pada file mysql-gui-tools-5.0-r8-win32.msi b. Click Next setelah layar Welcome to the Setup Wizard for MySQL Tools for 5.0

tampil

c. Pilih I accept the term in the license agreement, kemudian click Next.


(11)

Modul Praktikum Sistem Basis Data ... 11 d. Tentukan lokasi hasil instalasi dengan click Change …, kemudian click Next.

Gambar 13: Penentuan Tujuan Tempat/Folder Hasil Intalasi e. Untuk proses instalasi yang paling mudah, pilih Complete, kemudian click Next

Gambar 14: Pilihan Tipe Instalasi f. Pilih Install, jika sudah yakin dengan tempat tujuan hasil instalasi.


(12)

Modul Praktikum Sistem Basis Data ... 12 Gambar 15: Konfirmasi Terakhir Proses Instalasi MySQL GUI Tools

g. Tunggu hingga proses instalasi selesai dikerjakan. Kemudian click Finish untuk mengakhiri proses instalasi

3. Login Ke Server MySQL

Sesi login ke server database MySQL dapat dilakukan dengan beberapa cara, baik dengan mode text maupun mode grafik (GUI). Cara pertama dapat dilakukan dengan memilih urutan menu Start Programs MySQL MySQL Server 5.0 MySQL Command Line Client. Dengan cara tersebut, kita akan login ke server database MySQL dengan mode text sebagai root (user tertinggi/administrator). Password yang dimasukkan adalah password root, kemudian tekan Enter. Jika proses autentifikasi user dan password diterima, maka di layar akan tampil prompt/shell mysql>, seperti pada gambar berikut;


(13)

Modul Praktikum Sistem Basis Data ... 13 Hal tersebut menunjukkan bahwa kita sedang login ke dalam server database MySQL. Jalan lain untuk dapat login ke server database MySQL, dapat dilakukan melalui DOS prompt. Pilih urutan menu Start Run, pada dialog Open ketik CMD, kemudian click OK

Gambar 17: Kotak Dialog Run Program Dalam Windows

Pindahkan direktori aktif ke direktori server MySQL, misalnya: C:\Program File\MySQL\MySQL Server 5.0\bin. Ketik perintah MySQL –u root –h localhost –p , kemudian masukkan password user root. Perintah tersebut menunjukkan bahwa kita akan login ke server database MySQL, dengan user root dan dari mesin localhost (di mesin yang sama, tempat server MySQL berada). Parameter –p adalah untuk meminta password.

Gambar 18: Prompt/Shell MySQL

Cara ketiga adalah dengan menggunakan salah satu fasilitas pada MySQL GUI Tools, yaitu MySQL Query Browser. Lagkah yang harus dilakukan adalah dengan memilih urutan menu Start Programs MySQL MySQL Query Browser. Masukkan server host, port, user name dan password yang sesuai, serta default schema yang diinginkan. Click OK, jika proses autentifikasi user name dan password diterima, maka di layar akan tampil form query browser sebagai berikut;


(14)

Modul Praktikum Sistem Basis Data ... 14 Gambar 19: Kotak Dialog Koneksi ke Server Dengan MySQL Query Browser

Gambar 20: Interface MySQL Query Browser Setelah Login Ke Server MySQL Untuk keluar/logout dari server MySQL, cukup dengan perintah quit; atau exit;


(15)

Modul Praktikum Sistem Basis Data ... 15

PRAKTIKUM II

MANAJEMEN USER (PENGGUNA) MySQL

A. LATAR BELAKANG

Tanggung jawab seorang administrator server database tidak hanya terbatas pada mempersiapkan server database supaya dapat dioperasikan dengan baik, akan tetapi seorang administrator juga dituntut untuk dapat membuat pengguna serta mengatur hak/izin aksesnya.

Pengaturan hak akses pengguna tidak hanya pada tataran hak login (otentifikasi) ke server, namun juga pengaturan hak akses sumber daya yang ada dalam server database (otorisasi). Pengaturan hak otorisasi bagi pengguna dapat dilakukan pada level database, objek table maupun view dan pada level kolom atau field. Penguasaan dalam hal pengelolaan pengguna server database beserta hak aksesnya mutlak dikuasai oleh seorang administrator server database.

B. TUJUAN

Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat;

1. Menjelaskan perbedaan antara hak otentifikasi dengan otorisasi bagi pengguna database MySQL

2. Menciptakan dan menghapus pengguna database MySQL

3. Memberikan dan menghapus hak akses pada level database, objek tabel dan kolom bagi pengguna database MySQL

C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN

Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan software yang dibutuhkan sebelum melakukan praktikum ini adalah;

1. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan menggunakan kabel maupun dengan jaringan tanpa kabel (nirkabel)


(16)

Modul Praktikum Sistem Basis Data ... 16 2. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur

3. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser dan MySQL Administrator.

D. TEORI DASAR

Seorang user atau pengguna MySQL agar dapat memanfaatkan sumber daya data yang tersedia, tidak hanya cukup memiliki user login dan password saja (otentifikasi). Namun seorang user atau pengguna MySQL juga harus memiliki hak akses (otorisasi) terhadap sebagian atau keseluruhan sumber daya data yang ada dalam sebuah server MySQL. Seorang administrator database MySQL, dituntut untuk tidak hanya bisa melakukan instalasi software MySQL dan memastikan server dapat bekerja dengan baik. Lebih dari itu, kita juga harus dapat menciptakan pengguna-pengguna baru serta mengatur hak aksesnya.

Perintah GRANT digunakan untuk membuat user baru beserta izin aksesnya. Sedangkan perintah REVOKE digunakan untuk menghapus izin akses user. Perintah REVOKE tidak menghapus seorang user secara permanen, namun hanya sekedar menghapus izin akses terhadap sumber daya yang ada dalam server MySQL. Dengan kata lain, bila seorang user telah dihapus izin aksesnya dengan perintah REVOKE, dia tetap dapat masuk (login) ke dalam MySQL, walaupun tidak dapat berbuat apa-apa. Untuk menghapus user secara permanen, dapat digunakan perintah DELETE.

Bentuk umum perintah GRANT:

GRANT <jenis akses> ON <nama database> TO <nama user> IDENTIFIED BY <"password"> [WITH GRANT <pilihan akses>]

Bentuk umum perintah REVOKE:

REVOKE <jenis akses> ON <nama database> FROM <nama user> Bentuk umum perintah DELETE:


(17)

Modul Praktikum Sistem Basis Data ... 17

E. LANGKAH-LANGKAH PRAKTIKUM

1. Menciptakan Pengguna Baru

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p  Enter password: rootpassword

mysql>GRANT ALL PRIVILEGES ON *.* TO „sinta‟@‟localhost‟ ->IDENTIFIED BY „passwordsembarang‟

->WITH GRANT OPTION;

mysql>GRANT ALL PRIVILEGES ON *.* TO „santi‟@‟%‟ ->IDENTIFIED BY „passwordsembarang‟

->WITH GRANT OPTION;

mysql>GRANT ALL PRIVILEGES ON *.* TO „nasti‟ ->IDENTIFIED BY „passwordsembarang‟

->WITH GRANT OPTION;

mysql>GRANT USAGE ON *.* TO „andi‟@‟localhost‟

->IDENTIFIED BY „passwordsembarang‟; Penjelasan

 Perintah pertama adalah untuk membuat user baru dengan nama sinta dengan level akses sebagai administrator (privileges ALL), yang berarti dapat mengakses SEMUA database yang ada di dalam server (ON *.*) selama lokasi pengakses tersebut dilakukan pada mesin lokal (sinta@localhost). Lokasi pengakses bisa menggunakan alamat IP (Internet Protocol Address) dan nama domain (domain name). Perintah WITH GRANT OPTION memberikan wewenang kepada sinta untuk dapat memberikan izin akses (GRANT) kepada user-user lainnya.

 Untuk perintah kedua, akses dapat dilakukan dari mesin mana saja di seluruh dunia selama user tersebut dapat melakukan koneksi ke server MySQL (TO santi@'%'). Perintah TO santi@'%' bisa juga ditulis tanpa tanda'%', seperti pada perintah ketiga (TO nasti)

 Dengan GRANT USAGE, si andi mempunyai level akses sebagai user biasa dengan tidak memiliki izin akses apapun, tetapi dia tetap dapat login dengan user dan password ke dalam MySQL. User seperti andi ini disebut juga Dummy User/Blank User.

Selanjutnya perhatikan tabel user di dalam database mysql, apakah user-user yang dibuat sudah terdaftar?. Apa yang tampil dari perintah-perintah pada latihan berikut,

a. Apa yang nampak setelah perintah berikut; mysql>USE mysql;


(18)

Modul Praktikum Sistem Basis Data ... 18 b. Kemudian apa yang tampil setelah perintah berikut;

mysql>SELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv ->drop_priv FROM user;

c. Cabut hak akses dari user santi; apa yang terjadi? mysql>REVOKE ALL ON *.* FROM santi@localhost

mysql>SELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv ->drop_priv FROM user;

d. Lakukan penghapusan terhadap user santi; apa yang berubah? mysql>DELETE FROM user WHERE user=‟ santi‟;

mysql>SELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv ->drop_priv FROM user;

mysql>QUIT;

2. Penghapusan Izin Akses Pengguna

Guna memperdalam pemahaman kita dalam melakukan penghapusan izin/hak akses terhadap pengguna (user), lakukan bebera langkah berikut;

a. Berikanlah izin akses penuh terhadap user anwar terhadap seluruh table dalam database mydatabase;

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p Enter password: rootpassword

mysql>GRANT ALL PRIVILEGES ON mydatabase.* TO anwar@localhost; b. Lakukan penghapusan hak akses SELECT dan INSERT bagi user anwar;

mysql>REVOKE SELECT, INSERT ON mydatabase.* FROM anwar@localhost; c. Lakukan penghapusan hak akses CREATE dan DROP bagi user anwar;

mysql>REVOKE CREATE, DROP ON mydatabase.* FROM anwar@localhost; d. Lakukan penghapusan seluruh hak akses bagi user anwar;

mysql>REVOKE ALL PRIVILEGES ON mydatabase.* FROM anwar@localhost;

3. Pemberian dan Pembatasan Izin Akses Pengguna

Beberapa perintah GRANT berikut digunakan untuk memberikan atau menghapus izin akses pengguna, yang meliputi SELECT, INSERT, UPDATE dan DELETE terhadap database tertentu. Lakukan perintah-perintah dalam latihan berikut;

a. Apa yang terjadi setelah perintah berikut;


(19)

Modul Praktikum Sistem Basis Data ... 19 Enter password: rootpassword

mysql>CREATE DATABASE mydatabase;

mysql>GRANT SELECT, INSERT,UPDATE, DELETE ON mydatabase ->TO santi@localhost;

mysql>UPDATE user SET password=password(„passwordsembarang‟) ->WHERE user=‟santi‟;

b. Lihatlah tabel hak akses user terhadap table (GRANT TABLES), dari hasil perintah berikut, apa yang nampak?

mysql>SELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv ->FROM db WHERE user=‟santi‟;

c. Lakukan perintah berikut, apakah santi dapat membuat tabel? mysql>QUIT;

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u santi -h localhost -p  Enter password: passwordsembarang

mysql>USE mydatabase;

mysql>CREATE TABLE mytable1

->(noid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, ->nama VARCHAR(35) NOT NULL);

d. Berikanlah hak CREATE dan DROP TABLE untuk user santi, dengan perintah berikut;

mysql>QUIT;

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p  Enter password: rootpassword 

mysql>GRANT CREATE, DROP ON mydatabase TO santi@localhost mysql>CREATE TABLE mytable1

->(noid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, ->nama VARCHAR(35) NOT NULL);

mysql>SHOW TABLES;

e. Mengapa si santi dapat melakukan penghapusan tabel dengan perintah berikut? mysql>QUIT;

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u santi -h localhost -p  Enter password: passwordsembarang

mysql>DROP TABLE mytable1; mysql>SHOW TABLES;

Pemberian dan pencabutan hak akses bagi pengguna dapat juga dilakukan pada kolom/field tertentu dalam suatu table. Latihan berikut akan menunjukkan bagaimana MySQL mampu melakukan hal tersebut;


(20)

Modul Praktikum Sistem Basis Data ... 20 a. Berikan hak akses sembarang database kepada user anwar dan berikan password

dengan perintah berikut;

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p  Enter password: rootpassword

mysql>GRANT USAGE ON *.* TO anwar@localhost

->IDENTIFIED BY „passwordsembarang‟; mysql>QUIT;

b. Buatlah table dengan nama mytable1 pada database mydatabase dengan user login santi;

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u santi -h localhost -p  Enter password: passwordsembarang

mysql>USE mydatabase;

mysql>CREATE TABLE mytable1

->(nip INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, ->nama VARCHAR(35) NOT NULL,

->tmp_lahir VARCHAR(35) NOT NULL,

->tgl_lahir DATE NULL DEFAULT “0000-00-00”, ->kelamin ENUM(„L‟,‟P‟),

->alamat VARCHAR(35) NOT NULL); c. Apa maksud dari perintah-perintah berikut?;

mysql>GRANT

->SELECT (nip, nama, tgl_lahir, alamat), ->INSERT (nip, nama, tgl_lahir, alamat), ->ON mydatabase.mytable1

->TO anwar@localhost;

d. Apa pengaruh perintah tersebut pada GRANT TABLE?, cari tahu dengan lakukan perintah berikut;

mysql>SELECT host, db, user, table_name, grantor ->FROM table_priv WHERE user=‟anwar‟;

e. Lihatlah hak akses yang dimiliki oleh user anwar, dengan perintah berikut; mysql>SELECT host, db, user, table_priv, column_priv

->FROM table_priv WHERE user=‟anwar‟;

f. Tampilkan nama-nama kolom yang dapat diakses oleh user anwar, dengan perintah berikut;


(21)

Modul Praktikum Sistem Basis Data ... 21 g. Apa saja yang dapat dilakukan oleh user anwar terhadap table mytable1 dalam

database mydatabase?, ikuti perintah-perintah berikut; mysql>QUIT;

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u anwar -h localhost -p Enter password: passwordsembarang

mysql>USE mydatabase;

mysql>SELECT * FROM mytable1; mysql>INSERT INTO mytable1

->VALUES („1‟, „AISYAH‟,‟MALANG‟,‟1975-8-16‟,‟P‟,‟PANJAITAN 17‟); h. Sukseskah perintah terebut? Mengapa demikian? Bagaimana dengan perintah berikut?

mysql>SELECT * FROM mytable1;

i. Lakukan perubahan data dengan perintah UPDATE, sebagaimana perintah berikut; mysql>UPDATE mytable1 SET nama=‟AISYAH KAMILA‟ WHERE nip=„1‟; Apa yang terjadi? Mengapa demikian?

j. Lakukan penghapusan table mytable1, sebagaimana perintah berikut; mysql>DELETE FROM mytable1;

Apa yang terjadi? Mengapa demikian?

Penjelasan

 Kegagalan yang terjadi ketika menjalan perintah UPDATE, DELETE dan DROP, disebabkan user anwar tidak diberi hak akses tersebut pada mytable1 dalam database mydatabase. Untuk memberikan hak penuh bagi user anwar dapat dilakukan dengan perintah berikut;

mysql>GRANT ALL PRIVILEGES ->ON mydatabase.mytable1

->TO anwar@localhost;

 Bila akan memberikan hak penuh bagi user anwar terhadap seluruh table dalam database mydatabase, dapat dilakukan dengan perintah berikut;

mysql>GRANT ALL PRIVILEGES ->ON mydatabase.*

->TO anwar@localhost;

Beberapa contoh di atas hanya memberikan izin mengakses MySQL secara lokal, hanya pada komputer tempat program MySQL Server terinstall. Bagaimana kalau lokasi komputemya berbeda? Bisakah melakukan pembatasan hanya pada komputer tertentu saja yang dapat mengakses? Perhatikan perintah GRANT berikut;


(22)

Modul Praktikum Sistem Basis Data ... 22 mysql>GRANT CREATE, DROP

->ON mydatabase.* ->TO anwar@localhost;

Perintah TO sebenamya terdiri dari dua bagian, yaitu nama user dan alamat lokasi pengakses. Pada perintah TO di atas, kita memberikan izin akses kepada user anwar dengan alamat mesin localhost. Alamat ini bisa juga kita isi dengan alamat IP (Intemet Protocol), misalnya 127.0.0.1 atau alamat IP apa saja yang dimilik, sehingga perintah di atas menjadi:

mysql>GRANT CREATE, DROP ->ON mydatabase.*

->TO anwar@127.0.0.1; atau

mysql>GRANT CREATE, DROP ->ON mydatabase.*

->TO anwar@‟www.dimanasaja.com‟; atau

mysql>GRANT CREATE, DROP ->ON mydatabase.*

->TO anwar@‟%.dimanasaja.com‟;

Dengan perintah seperti itu, maka anwar dapat melakukan login dengan cara seperti berikut;

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql –h 127.0.0.1 -u anwar -p Atau

C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql –h www.dimanasaja.com -u anwar –p

F. TUGAS

a. Daftarkan user-user berikut beserta hak aksesnya

No. Nama User Pswd Database & Table Hak Akses

All Select Insert Update Delete Create Drop 1 Andi 11111 *.*

2 Amir 22222 ujimhsdb.dosen √ √ √ √

3 Ahmad 33333 ujimhsdb.* √

4 Anik 44444 ujimhsdb.ujian √ √ √ 5 Ana 55555 *.* √


(23)

Modul Praktikum Sistem Basis Data ... 23 b. Rubahlah hak akses user-user berikut

No. Nama User Pswd Database & Table Hak Akses

All Select Insert Update Delete Create Drop

1 Andi 11111 *.* √ √ √

2 Amir 22222 ujimhsdb.dosen √ √

3 Ahmad 33333 ujimhsdb.* √ √ √ √ √

4 Anik 44444 ujimhsdb.ujian √ √ √ √

5 Ana 55555 *.* √ √

c. Daftarkan user-user berikut beserta hak aksesnya

No. Nama User Pswd Database & Table Hak Akses

All Select Insert Update Delete Create Drop 1 Budi AAAA *.*

2 Badu BBBB ujimhsdb.hsl_ujian √ √ √

3 Bimbim CCCC ujimhsdb.* √

4 Badrus EEEE ujimhsdb.dosen √ √ 5 Bobi FFFF *.* √

d. Rubah hak akses user-user berikut

No. Nama User Pswd Database & Table Hak Akses

All Select Insert Update Delete Create Drop

1 Budi AAAA *.* √ √ √ √

2 Badu BBBB ujimhsdb.hsl_ujian √ √ √

3 Bimbim CCCC ujimhsdb.* √ √ √

4 Badrus EEEE ujimhsdb.dosen √ √ √ √


(24)

Modul Praktikum Sistem Basis Data ... 24

PRAKTIKUM III

TIPE DATA DAN OPERATOR MySQL

A. LATAR BELAKANG

Pemahaman yang baik tentang jenis dan karakteristik tipe data dan operator yang ada, akan sangat membantu pengguna dalam melakukan query data pada software aplikasi server database. Tanpa pemahaman yang memadai tentang hal tersebut dapat berakibat pada ketidakvalidan data yang dihasilkan dari sebuah perintah query.

MySQL sebagai software server database, juga mengenal berbagai macam jenis tipe data dan operator. Masing-masing tipe data dan operator memiliki karakteristik yang berbeda dengan lainnya. Guna membantu peningkatan pemahaman mahasiswa dalam menggunakan berbagai macam tipe data dan operator yang ada dalam MySQL, diperlukan tindakan uji coba dalam praktikum berikut ini.

B. TUJUAN

Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat menjelaskan dan menggunakan berbagai macam tipe data dan operator MySQL dalam query data dengan baik.

C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN

Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan software yang dibutuhkan sebelum melakukan praktikum ini adalah;

1. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan menggunakan kabel maupun dengan jaringan tanpa kabel (nirkabel)

2. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur 3. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser


(25)

Modul Praktikum Sistem Basis Data ... 25 D. TEORI DASAR

1. Tipe Data Dalam MySQL

Secara umum jenis atau tipe data yang dikenal dalam 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

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.

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). Adapun contoh penulisan teks yang benar adalah sebagai berikut:

 "Jl. Surabaya No. 34"  'Kota Malang'

 "Saya suka masakan ini"  „123456'

 "Saya akan berkunjung ke rumahmu pada hari Jum'at depan"

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 menarnpilankannya, 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”.

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


(26)

Modul Praktikum Sistem Basis Data ... 26 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.

2. Tipe Data Kolom Pada MySQL

Tipe data kolom merupakan rincian dari tipe data yang diterapkan pada setiap kolom/field sebuah tabel. Penentuan tipe data kolom, dapat dilakukan saat pembuatan tabel dengan perintah CREATE TABLE. Adapun tipe data kolom dapat dikelompokkan sebagai berikut:

2.1 Tipe Data Kolom Numerik dan Atributnya

Tabel 1: Tipe Data Kolom Numerik Tipe Data

Kolom

Bentuk Penulisan Jangkauan Nilai Ukuran

TINYINT TINYINT [(M)]

[UNSIGNED] [ZEROFILL]

Bilangan bulat dengan kisaran nilai: SIGNED: -128 s/d 127

UNSIGNED: 0 s/d 255

1 Byte

SMALLINT SMALLINT [(M)]

[UNSIGNED] [ZEROFILL]

Bilangan bulat dengan kisaran nilai: SIGNED: -32768 s/d 32767

UNSIGNED: 0 s/d 65535

2 Byte

MEDIUMINT MEDIUMINT [(M)]

[UNSIGNED] [ZEROFILL]

Bilangan bulat dengan kisaran nilai: SIGNED: -8388608 s/d 8388607 UNSIGNED: 0 s/d 1677215

3 Byte

INT INT [(M)]

[UNSIGNED] [ZEROFILL]

Bilangan bulat dengan kisaran nilai SIGNED:-2147683648 s/d 2147683647 UNSIGNED: 0 s/d 4294967295

4 Byte

BIGINT BIGINT [(M)]

[UNSIGNED] [ZEROFILL]

Bilangan bulat dengan kisaran nilai: SIGNED: -9223372036854775808 s/d 9223372036854775807

UNSIGNED:0 s/d 18446744073709551615

8 Byte

FLOAT FLOAT [(M,D)]

[UNSIGNED] [ZEROFILL] atau

FLOAT(4)

Bilangan pecahan presisi tunggal dengan kisaran nilai: Nilai minimum (tanpa nilai nol) 1.175494351E-38

Nilai maksimum (tanpa nilai nol) 6.402823466E+38

4 Byte

DOUBLE DOUBLE [(M,D)]

[UNSIGNED] [ZEROFILL] atau

FLOAT(8)

Bilangan pecahan presisi ganda

(double precision) dengan kisaran nilai: Nilai minimun (tanpa nilai nol)

2.2250738580720E-308

Nilai maksimum (tanpa nilai nol) ±1.7976931348623157E+308

8 Byte

DECIMAL DECIMAL [(M,D)] Bilangan desimal, dengan nilai M Byte tergantung pada besaran M dan D.


(27)

Modul Praktikum Sistem Basis Data ... 27 2.2 Tipe Data Kolom String/Character

Tabel 2: Tipe Data Kolom String/Character Tipe Data

Kolom

Bentuk Penulisan Keterangan Ukuran

CHAR CHAR(M) Data string dengan lebar data yang tetap(M).

Maksimum lebar data 255 karakter

M Byte

VARCHAR VARCHAR(M)

Data string dengan lebar data yang

bervariasi(M). Maksimum lebar data 255 karakter

M Byte

2.3 Tipe Data Kolom BLOB dan TEXT

Tabel 3: Tipe Data Kolom BLOB dan Text

Jenis Kolom Keterangan Ukuran

TINYBLOB Data binary dengan lebar data maksimum 255 karakter M+1 Byte

BLOB Data binary dengan lebar data maksimum 65.535 karakter M+2 Byte

MEDIUMBLOB Data binary dengan lebar data maksimum 16.777.215 karakter M+3 Byte

LONGBLOB Data binary dengan lebar data maksimum 4.294.967.295

karakter M+4 Byte

TINYTEXT Data text dengan lebar data maksimum 255 karakter M+1 Byte

TEXT Data text dengan lebar data maksimum 65.535 karakter M+2 Byte

MEDIUMTEXT Data text dengan lebar data maksimum 16.777.215 karakter M+3 Byte

LONGTEXT Data text dengan lebar data maksimum 4.294.967.295 karakter M+4 Byte Catatan: M merupakan nilai maksimum yang diperkenankan dengan kisaran 1 s/d 255.

2.4 Tipe Data Kolom ENUM dan SET

ENUM (enumeration) dan SET (himpunan) adalah tipe data khusus. Kolomnya harus diisi dengan nilai pilihan yang sudah ditentukan pada saat deklarasi ENUM dan SET. Perbedaan diantara kedua tipe data tersebut adalah, pada ENUM hanya bisa dipilih salah satu dari pilihan yang ada. Sedangkan pada SET, dapat dipilih satu atau lebih dari pilihan yang ada. Bentuk umum pendeklarasian kedua tipe data tersebut adalah sebagai berikut;

Tabel 4: Tipe Data Kolom ENUM dan SET

Jenis Kolom Bentuk Dasar Keterangan

ENUM ENUM(nilai1, nilai2, …..,

nilaiN)

Hanya dapat menampung 1 data saja dari pilihan data yang ada atau NULL, dengan jumlah pilihan maksimum 65.535 pilihan data.


(28)

Modul Praktikum Sistem Basis Data ... 28

Jenis Kolom Bentuk Dasar Keterangan

SET SET(nilai1, nilai2, ….., nilaiN) Dapat menampung lebih dari 1 data saja dari pilihan data yang ada atau NULL, dengan jumlah pilihan maksimum 64 pilihan data.

Beberapa contoh pendeklarasian tipe data ENUM adalah sebagai berikut;  Jenis_Kelamin ENUM(“L”, “P”)

 Status_Pernikahan ENUM(“Menikah”, ”Lajang”, ”Janda”, ”Duda”)  Status_Karyawan ENUM(“Karyawan Tetap”, “Karyawan Honorer”)  Ukuran_Baju ENUM(“S”, ”M”, ”L”, ”XL”)

Pada ENUM, kita hanya boleh memilih salah satu dari pilihan Jenis_Kelamin (“L” atau “P”), Status_Pernikahan (“Menikah”, “Lajang”, “Janda” atau “Duda”), dan seterusnya. Pada SET kita bisa memilih minimal satu dari pilihan yang ada. Misal pada Menu_Pilihan (seperti contoh tipe data SET), kita bisa memilih Nasi Goreng saja, bisa juga Mie Rebus dan Juice Apokat, atau bahkan kita pilih sernuanya (“Nasi Goreng”, “Mie Rebus”, “Juice Apokat”, “Ayam Bakar”). Contoh pendeklarasian Set adalah sebagai berikut :

 Menu_Pilihan SET(“Nasi Goreng”, “Mie Rebus”, “Juice Apokat”, “Ayam Bakar”)  Merek_Mobil SET(“Mercedes Benn”, “BMW”, “Audi”, "Toyota”, “Mitsubishi”,

”Suzuki”)

 Hobby SET(“Makan”, “Tidur”, “Olah Raga”, “Travelling”, “Baca”)

2.5 Tipe Data Kolom Date dan Time

Tipe data kolom Date dan Time digunakan untuk menampung data tanggal dan jam. Pada MySQL data tanggal dan jam, dapat pada beberapa tipe data dalam kelompok tipe data Date and Time. Berikut ini erdpat beberapa tipe data Date and Time beserta format penulisannya;

3. Jenis Operator Pada MySQL

Software database server MySQL juga mengenal beberapa jenis operator sebagai penghubung suatu ekpresi matematis, logika atau perbandingan. Operator-operator pada MySQL berdasarkan fungsinya dapat dikategorikan sebagai berikut:


(29)

Modul Praktikum Sistem Basis Data ... 29 Operator Logika

Tabel 5: Operator Logika

Operator Fungsi Contoh

NOT atau ! Sebagai NEGASI (bukan) dari suatu

nilai

NOT Perempuan atau !Perempuan

OR atau ||

ATAU, akan bernilai benar bila salah satu atau kedua ekspresi adalah benar.

Buah=”Jambu” ORBuah=”Mangga”

Atau

Buah=”Jambu” ||Buah=”Mangga” AND atau &&

DAN, akan bernilai benar hanya bila ekspresi adalah benar.

Buah=”Jambu” AND

Hewan=”Monyet” Atau

Buah=”Jambu” &&Hewan=”Monyet” Operator Aritmatika

Tabel 6: Operator Aritmatika Operato

r

Fungsi

+ Melakukan penjumlahan pada operasi matematika - Melakukan pengurangan pada operasi matematika * Melakukan perkalian pada operasi matematika

/ Melakukan pembagian pada operasi matematika

% Melakukan proses modulus (mencari sisa bagi) pada operasi matematika

Operator Pembanding

Tabel 7: Operator Pembanding/Relasi

Operator Fungsi Contoh

= Sama dengan Nama=”anwar”

Harga=45610

> Lebih dari TinggiBadan>150

< Kurang dari TinggiBadan<150

>= Lebih dari atau sama dengan TinggiBadan>=150

<= Kurang dari atau sama dengan TinggiBadan<=150

!= atau <> Tidak sama dengan

Nama!=”anwar” Harga<>100 3!=2


(30)

Modul Praktikum Sistem Basis Data ... 30

Operator Fungsi Contoh

IS NULL Apakah nilai NULL Nama IS NULL

BETWEEN …

AND Apakah suatu nilai berada diantara nilai

Harga BETWEEN 150 AND 500

IN Apakah suatu nilai berada diantara nilai pilihan

yang ada

Nama IN (“Anwar”, “Amir”)

NOT IN Apakah suatu nilai tidak berada diantara nilai

pilihan yang ada

Nama NOT IN (“Anwar”, “Amir”

LIKE Apakah suatu nilai memiliki kriteria nilai yang

ada

Nama LIKE “An%”

NOT LIKE Apakah suatu nilai tidak memiliki kriteria nilai

yang ada

Nama NOT LIKE “An%”

REGEXP Nilai menjadi benar bila kedua nilai tersebut

sama

a REGEXP b

NOT REGEXP Nilai menjadi benar bila kedua nilai tersebut

tidak sama

a NOT REGEXP b

<=> Nilai menjadi benar bila kedua nilai tersebut

sama

a <=> b

4. Urutan Prioritas Operator

Memahami urutan prioritas operator, akan sangat membantu kita dalam penulisan perintah-perintah MySQL, sehingga dalam menampilkan data sesuai dengan yang kita harapkan. Adapun urutan prioritas operator adalah sebagai berikut;

Tabel 8: Urutan Prioritas Operator Urutan

Prioritas Operator

1 BINARY

2 NOT atau !

3 - (MINUS)

4 * / %

5 + -

6 << >>

7 &

8 |

9 < <= = => > != <> IN IS LIKE REGEXP RLIKE


(31)

Modul Praktikum Sistem Basis Data ... 31

Urutan

Prioritas Operator

10 BETWEEN

11 AND atau &&

12 OR atau ||

E. LANGKAH-LANGKAH PRAKTIKUM

Guna membantu pemahaman kita dalam menggunakan berbagai macam operator dan tipe data, lakukan beberapa perintah query berikut ini;

a. Kesimpulan apa yang dapat diambil dari penggunaan operator aritmatika berikut? mysql>SELECT 10 + 20, 15.4 + 13.2, “24JAM” + “30HARI”,

->“12 BULAN” + “1 TAHUN”, “My” + “SQL”; mysql>SELECT 10 - 20, 15.4 - 13.2, “24JAM” - “30HARI”, ->“12 BULAN” - “1 TAHUN”, “My” - “SQL”, -(7 - 5); mysql>SELECT 20 % 2, 15.4 % 13.2, -25 % 4, 1 / 0;

b. Kesimpulan apa yang dapat diambil dari penggunaan operator pembanding berikut? mysql>USE mysql;

mysql>SELECT “a” > “A”; mysql>SELECT 10 <= 20;

mysql>SELECT user FROM user WHERE user != “anto”; mysql>SELECT user FROM user WHERE user IS NOT NULL; mysql>SELECT 110 BETWEEN 100 AND 500;

mysql>SELECT user FROM user WHERE user NOT LIKE “a%”; mysql>SELECT user FROM user WHERE user IN (“anto”, “andi”); c. Buatlah database latihdb dan table teman;

mysql>CREATE DATABASE latihdb; mysql>USE latihdb;

mysql>CREATE TABLE teman

->(noid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, ->nama VARCHAR(35) NOT NULL,

->kelamin ENUM(„L‟,‟P‟),

->tmp_lahir VARCHAR(35) NOT NULL,

->tgl_lahir DATE NULL DEFAULT “0000-00-00”, ->alamat VARCHAR(50) NOT NULL,


(32)

Modul Praktikum Sistem Basis Data ... 32 d. Isilah table teman dengan data sebagai berikut;

Tabel 9: Data Table Teman

Noid Nama Klm Tempat

Lahir

Tanggal Lahir

Alamat Kota

1 Ahmad Subhan L Medan 1977-09-29 Jl. Arjono 123 Medan

2 Benny Sukmana L Bogor 1971-06-22 Jl. Letjend. Sutoyo 87 Bandung

3 Subono L Semarang 1975-04-19 Jl. Panglima Sudirman 63 Solo

4 Richard Buntaran L Medan 1981-05-17 Jl. Untung Suropati 312 Malang

5 Carla Karmelita P Manado 1978-06-09 Jl. Merdeka Barat 90 Jakarta

6 Chintiawati P Cianjur 1976-01-13 Jl. Kesatrian 100 Surabaya

7 Oka Sulaksana P Denpasar 1978-11-07 Jl. Daan Mogot 75 Jakarta

8 Dwi Dirgantara L Surabaya 1975-02-07 Jl. Sidotopo IV/621B Surabaya

9 Ramli Sokoco L Madiun 1982-04-17 Jl. Sunan Giri 54 Madiun

10 Sri Sundari P Samarang 1978-12-19 Jl. Ambarawa 93 Samarang

11 Dwikoro Jatmiko L Bogor 1976-06-16 Jl. Sungai Citarum 23 Bogor

12 Dhamayanti P Cirebon 1984-08-18 Jl. Gatot Subroto 124 Cirebon

13 Dharmanwangsa L Batam 1977-07-09 Jl. Kolonel Sugiono 77 Bandung

14 Syarifa Firdaus P Cianjur 1986-01-19 Jl. Raden Rahmad 32 Malang

15 Royan Surya L Bogor 1979-01-23 Jl. Asparagus 93 Bogor

16 Ginanjar L Cibinong 1979-03-21 Jl. Ahmad Yani 100 Riau

17 Gina Sonia P Bogor 1982-09-12 Jl. Citarum 53 Bogor

18 Bartiniwati P Surakarta 1975-04-12 Jl. Sidoutomo 2 Kepanjen Malang

19 Ian Sulistio L Palembang 1978-10-11 Jl. Raden Saleh II/42 Surabaya

20 Indri Jelita P Bengkulu 1983-07-19 Jl. Ahmad Yani 21 Bengkulu

21 Junita Santiago P Padang 1980-11-09 Jl. Mayjend. Panjaitan 45 Padang

22 Moh. Umar P Malang 1973-12-25 Jl. Citandui 52 Malang

23 Aisyah Kamila L Semarang 1980-10-03 Jl. Panglima Sudirman 15 Semarang

24 Rita Nurjannah P Surabaya 1981-10-10 Jl. Sidodadi 76 Surabaya

25 Indah Mumpuni P Malang 1974-02-09 Jl. Sumbing 123 Malang

Perintah untuk menambahkan data pada table teman, adalah sebagai berikut, mysql>INSERT INTO teman VALUES(“1”, “Ahmad Subhan”, “L” “Medan”, ->“1977-09-29”, “Jl. Arjono 123”, “Medan”); dan seterusnya.


(33)

Modul Praktikum Sistem Basis Data ... 33 e. Tampilkan seluruh data teman;

mysql>SELECT * FROM teman;

f. Tampilkan seluruh data teman untuk field noid, nama, tempat lahir dan tanggal lahir; mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman;

g. Tampilkan data teman untuk field noid, nama, tempat lahir dan tanggal lahir hanya untuk jenis kelamin perempuan (“P”);

mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman WHERE kelamin=”P”;

h. Tampilkan data teman untuk field noid, nama, tempat lahir dan tanggal lahir hanya untuk jenis kelamin laki-laki (“L” atau NOT“P”);

mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman ->WHERE NOT kelamin=”P”; atau

mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman ->WHERE kelamin!=”P”; atau

mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman ->WHERE kelamin=”L”;

i. Tampilkan data teman yang lahir bukan di Malang;

mysql>SELECT * FROM teman WHERE NOT tmp_lahir=”Malang”; atau mysql>SELECT * FROM teman WHERE tmp_lahir!=”Malang”;

j. Tampilkan data teman yang lahir di Malang atau di Surabaya atau di Bogor; mysql>SELECT * FROM teman

->WHERE tmp_lahir IN (”Malang”, “Surabaya”, “Bogor”); atau mysql>SELECT * FROM teman

->WHERE tmp_lahir=”Malang” OR tmp_lahir=“Surabaya” ->OR tmp_lahir= “Bogor”;

k. Tampilkan data teman yang lahir bukan di Malang, Surabaya atau Bogor; mysql>SELECT * FROM teman

->WHERE tmp_lahir NOT IN (”Malang”, “Surabaya”, “Bogor”); atau mysql>SELECT * FROM teman

->WHERE tmp_lahir!=”Malang” AND tmp_lahir!=“Surabaya” ->AND tmp_lahir!=“Bogor”;

l. Tampilkan data teman yang lahir antara 01-01-1973 hingga 31-12-1977, urut tanggal lahir;


(34)

Modul Praktikum Sistem Basis Data ... 34 mysql>SELECT * FROM teman

->WHERE tgl_lahir BETWEEN “1973-01-01” AND “1977-12-31” ->ORDER BY tgl_lahir;

m. Tampilkan data teman yang lahir antara 01-01-1973 hingga 31-12-1977 dan berjenis kelamin laki-laki (L), urut nama;

mysql>SELECT * FROM teman

->WHERE tgl_lahir BETWEEN “1973-01-01” AND “1977-12-31” ->AND kelamin=”L” ORDER BY nama;

n. Tampilkan data teman yang namanya berawalan “a” dengan tidak membedakan hurup kapital, urut nama;

mysql>SELECT * FROM teman WHERE nama LIKE “a%” ORDER BY nama; p. Tampilkan data teman yang namanya berakhiran “a” dengan tidak membedakan hurup

kapital, urut nama;

mysql>SELECT * FROM teman WHERE nama LIKE “%a” ORDER BY nama; q. Tampilkan data teman yang namanya mengandung “n” dengan tidak membedakan

hurup kapital, urut nama;

mysql>SELECT * FROM teman WHERE nama LIKE “%n%” ->AND kelamin=”L” ORDER BY nama;

r. Tampilkan data teman yang namanya bukan berakhiran “n” dan bukan berakhiran “a” dengan tidak membedakan hurup kapital, urut nama;

mysql>SELECT * FROM teman WHERE nama NOT LIKE “%n” ->AND nama NOT LIKE ”%a” ORDER BY nama;

t. Tampilkan data teman untuk field noid, nama dan alamat untuk data yang beralamat NULL, urut nama;

mysql>SELECT noid, nama, alamat FROM teman WHERE alamat IS NULL ->ORDER BY nama;

u. Tampilkan data teman untuk field noid, nama dan alamat untuk data yang tidak beralamat NULL, urut nama;

mysql>SELECT noid, nama, alamat FROM teman WHERE alamat IS NOT NULL ->ORDER BY nama;

v. Tampilkan data teman untuk data yang namanya berakhiran “a”; mysql>SELECT * FROM teman WHERE nama REGEXP “a$”;


(35)

Modul Praktikum Sistem Basis Data ... 35 Penjelasan

 Perintah SELECT digunakan untuk menyeleksi data yang akan ditampilkan. Data yang diseleksi untuk ditampilkan dapat berupa hasil ekspresi matematis, logika, pembandingan maupun data yang berasal dari objek-objek dari database seperti TABLE ataupun VIEW.

 Bentuk umum dari perintah SELECT adalah sebagai berikut; SELECT

[ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY]

[STRAIGHT_JOIN]

[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr, ...

[INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name']

[FROM table_references [WHERE where_definition]

[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_definition]

[ORDER BY {col_name | expr | position} [ASC | DESC] , ...]

[LIMIT {[offset,] row_count | row_count OFFSET offset}]

ORDER BY <field> adalah perintah pengurutan data berdasarkan field yang dimaksud. Defauldnya adalah urut berdasarkan PRIMARY KEY.


(36)

Modul Praktikum Sistem Basis Data ... 36

PRAKTIKUM IV

FUNGSI BAWAAN (

BUILD IN FUNCTION

) MySQL

A. LATAR BELAKANG

Pemahaman yang baik tentang jenis dan karakteristik berbagai fungsi bawaan (build in function) yang ada pada MySQL, akan sangat membantu pengguna dalam melakukan query data. MySQL sebagai software server database, juga memiliki berbagai macam fungsi bawaan seperti fungsi-fungsi string, numerik, tanggal dan waktu hingga fungsi seleksi kondisi. Masing-masing fungsi memiliki karakteristik dan hasil yang berbeda dengan lainnya.

Guna membantu peningkatan pemahaman mahasiswa dalam menggunakan berbagai macam fungsi yang ada dalam MySQL, diperlukan tindakan uji coba dalam praktikum berikut ini.

B. TUJUAN

Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat menjelaskan dan menggunakan berbagai macam fungsi bawaan (build in function) MySQL dalam query data.

C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN

Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan software yang dibutuhkan sebelum melakukan praktikum ini adalah;

1. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan menggunakan kabel maupun dengan jaringan tanpa kabel (nirkabel)

2. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur 3. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser


(37)

Modul Praktikum Sistem Basis Data ... 37 D. TEORI DASAR

Fungsi merupakan sekumpulan perintah/instruksi untuk menghasilkan sebuah nilai, dengan atau tanpa melewatkan parameter. Pada MySQL telah terdapat sekumpulan fungsi-fungsi bawaan, yang dapat digunakan dalam melakukan perintah-perintah query yang termasuk dalam kelompok Data Manipulation Statemen (DMS). Selain itu sejak MySQL versi 5.0, MySQL telah dilengkapi pula dengan kemampuan membuat objek fungsi yang didefinisikan oleh pemakai sesuai keperluannya. Beberapa fungsi-fungsi bawaan dapat dikelompokkan sebagai berikut;

4. Fungsi String

ASCII(str), merupakan fungsi yang menghasilkan nilai numerik berupa kode ASCII dari parameter character/string (str) yang disertakan.

BIN(n), adalah fungsi yang menghasilkan nilai string berupa data biner dari parameter nilai numerik (n) yang disertakan.

CHAR(n1[, n2, . . . ]), fungsi yang menghasilkan sekumpulan character dari parameter kode ASCII (n1[,n2, . . .]) yang disertakan.

CHAR_LENGTH(str), menghasilkan nilai numerik berupa panjang dari parameter string (str) yang disertakan.

CONCAT(str1, str2[, str3, . . . . ]), fungsi yang menghasilkan nilai string berupa hasil penggabungan dari parameter-parameter string (str1, str2[, str3, . . . . ]) yang disertakan.

CONCAT_WS(separator, str1, str2[, str3, . . . . ]), fungsi yang menghasilkan nilai string berupa hasil penggabungan dari parameter-parameter string (str1, str2[, str3, . . . . ]) dan dipisahkan oleh parameter separator yang disertakan. FIELD(str, str1[, str2, str3, . . . . ]), fungsi yang menghasilkan nilai numeric

berupa urutan parameter str dari sekumpulan parameter string list (str1[, str2, str3, . . . . ]) yang disertakan.

FIELD_IN_SET(str, string_list), fungsi untuk menghasilkan urutan str dari sebuah sekumpulan string (string_list), jika parameter str tersebut ada dalam sekumpulan string (string_list) yang dimaksud.


(38)

Modul Praktikum Sistem Basis Data ... 38 INSERT(str, pos, len, newstr), fungsi yang dapat menambahkan/menyisipkan nilai string baru (newstr) pada nilai string asal (str), pada posisi substring (pos) sebanyak karakter (len).

LEFT(str, len), fungsi untuk menghasilkan sub string dari sebuah nilai string (str) mulai dari karakter paling kiri sebanyak len karakter

LENGTH(str), fungsi yang dapat menghasilkan panjang string (str), diukur dalam byte.

LOCATE(sub_str, str[, pos]), fungsi yang dapat menghasilkan nilai posisi pertama dari sub string (sub_str) berdasarkan urutan karakter dari sebuah nilai string (str).

LOWER(str), fungsi untuk merubah semua karakter dalam nilai string (str) menjadi hurup kecil (lowercase). Fungsi ini sinonim untuk fungsi LCASE().  LTRIM(str), fungsi yag dapat membuang semua spasi yang berada di sebelah kiri

sebuah nilai string (str).

ORD(char), fungsi yang menghasilkan nilai kode ASCII dari karakter(char)  QUOTE(str), fungsi untuk menambahkan tanda kutip/petik („ „) pada sebuah

nilai string (str)

REPEAT(str, count), fungsi untuk menghasilkan suatu nilai string (str) sebanyak jumlah (count) tertentu

REPLACE(str, from_str, to_str), fungsi yang dapat mengganti semua sub string (from_str) dengan sebuah sub string baru (to_str) dalam sebuah nilai string (str).  REVERSE(str), fungsi untuk membalikkan urutan karakter dalam sebuah nilai

string (str)

RIGHT(str, len), fungis untuk menghasilkan sub string dari sebuah nilai string (str) mulai dari karakter paling kanan sebanyak len karakter

RTRIM(str), fungsi untuk membuang semua spasi yang berada di sebelah kanan sebuah nilai string (str).

SPACE(n), fungsi yang menghasilkan n spasi

SUBSTRING(str, pos[, len]), fungsi yang menghasilkan sebuah nilai sub string dari sebuah string (str), mulai dari posisi tertentu (pos) hingga akhir string atau


(39)

Modul Praktikum Sistem Basis Data ... 39 sebanyak karakter tertentu (len). Fungsi ini sinonim dengan fungsi MID() dan bentuk lain fungsi ini adalah SUBSTRING(str FROM pos [FOR len]).

TRIM(str), fungsi untuk membuang semua spasi yang berada di sebelah kiri dan kanan sebuah nilai string (str).

UPPER(str), fungsi yang berguna untuk merubah semua karakter dalam nilai string (str) menjadi hurup kapital (upercase). Fungsi ini sinonim untuk fungsi UCASE().

5. Fungsi Numerik

ABS(n), fungsi yang menghasilkan nilai absolut dari n.

ACOS(n), fungsi untuk menghasilkan nilai arc kosinus dari n.  ASIN(n), fungsi untuk menghasilkan nilai arc sinus dari n.

ATAN(n), fungsi yang dapat menghasilkan nilai arc tangen dari n.

CEIL(n), fungsi untuk menghasilkan nilai integer terdekat yang tidak kurang dari nilai n.. Fungsi ini sinonim dengan fugsi CEILING(n).

COS(n), fungsi yang dapat menghasilkan nilai kosinus dari n. Dimana n dalam radian.

COT(n), fungsi yang dapat menghasilkan nilai kotangen dari n. Dimana n dalam radian.

DEGREES(n), fungsi untuk menghasilkan nilai derajat (degrees) dari nilai n radian.

EXP(n), fungsi untuk menghasilkan nilai exponensial dari nilai numerik n

FLOOR(n), fungsi yang dapat menghasilkan nilai integer terdekat yang tidak lebih dari nilai n..

LN(n), fungsi untuk menghasilkan nilai LEN (logaritma natural) dari nilai numerik n. Fungsi ini sinonim dengan fungsi LOG().

LOG([b,] n), fungsi yang dapat menghasilkan sebuah nilai dengan ketentuan, jika parameternya Cuma satu yaitu n, maka akan menghasilkan nilai LEN (logaritma natural) dari nilai numerik n (sinonim dengan fungsi LN()). namun jika ada dua parameter (b dan n), maka akan menghasilkan nilai logaritma basis b dari nilai n.  LOG2(n), fungsi untuk menghasilkan nilai logaritma basis 2 dari nilai numerik n.


(40)

Modul Praktikum Sistem Basis Data ... 40 LOG10(n), fungsi untuk menghasilkan nilai logaritma basis 10 dari nilai numerik n.  MOD(n, m), fungsi untuk menghasilkan nilai sisa (modulus) dari proses pembagian

integer n dengan m. Fungsi ini sama dengan operator % atau MOD.  PI(), fungsi yang mengahsilkan nilai PI

POW(n, m), fungsi untuk menghasilkan nilai n pangkat m.

RADIANS(n), fungsi yang dapat menghasilkan nilai radian dari n derajat.

RAND([n]), fungsi untuk menghasilkan nilai acak (random) antara 0 hingga 1.0. Parameter n (jika disertakan) digunakan sebagai awal bilangan acak.

ROUND(n[, d]), fungsi yang dapat menghasilkan nilai integer terdekat dari nilai numerik n. jika parameter d disertakan maka akan menghasilkan pecahan terdekat dari nilai numerik n dengan d digit desimal.

SIN(n), fungsi untuk menghasilkan nilai sinus dari nilai numerik n dalam radian.  SQRT(n), fungsi yang menghasilkan nilai positif dari akar kuadrat n.

TAN(n), fungsi untuk menghasilkan nilai tangent dari nilai numerik n dalam radian.  TRUNCATE(n, d), fungsi yang menghasilkan nilai numerik dengan menghilangkan digit desimal pad nilai numerik n hingga menyisakan d digit desimal.

6. Fungsi Date dan Time

ADDDATE(expr1, expr2), fungsi yang dapat digunakan untuk menghasilkan tanggal dari tanggal awal (expr1) ditambah interval hari yang ditentukan (expr2). Fungsi ADDDATE sinonim dengan fungsi DATE_ADD.

ADDTIME(expr1, expr2), fungsi yang menghasilkan jam dari jam awal (expr1) ditambah interval jam yang ditentukan (expr2).

CURDATE(), fungsi untuk menghasilkan tanggal sistem saat ini dalam format 'YYYY-MM-DD' atau YYYYMMDD. Fungsi ini sinonim dengan fungsi CURRENT_DATE().

CURTIME(), fungsi untuk menghasilkan jam sistem saat ini dalam format 'HH:MM:SS' atau HHMMSS format. Fungsi ini sinonim dengan fungsi CURRENT_TIME().


(41)

Modul Praktikum Sistem Basis Data ... 41 DATE(expr), fungsi untuk menghasilkan tanggal dari nilai/value datetime yang

disertakan dalam ekspresi (expr).

DATE_FORMAT(datetime, format), fungsi yang dapat menghasilkan nilai tanggal dan jam (datetime value) dalam format tertentu.

DAY(date), fungsi untuk menghasilkan tanggal dari sebuah urutan tahun-bulan-tanggal (date). Fungsi ini sinonim dengan fungsi DAYOFMONTH().

DAYNAME(date), fungsi yang dapat mengahasilkan nama hari dari sebuah nilai tanggal (date)

DAYOFWEEK(date), fungsi untuk menghasilkan urutan hari dalam minggu (1 = Sunday, 2 = Monday, ... 7 = Saturday) dari sebuah nilai tanggal (date).

DAYOFYEAR(date), fungsi yang dapat menghasilkan hari ke berapa dalam tahun dari sebuah nilai tanggal (date).

NOW(), fungsi untuk menghasilkan tanggal dan jam sistem saat ini dalam format 'YYYY-MM-DD HH:MM:SS' atau YYYYMMDDHHMMSS.

7. Fungsi Aggregasi

AVG(expr), fungsi untuk menghasilkan nilai rata-rata sekelompok nilai dari sebuah kolom (field) numerik.

COUNT(expr), fungsi untuk menghasilkan nilai jumlah data (baris/record) dari sekelompok data tabel maupun view.

MAX(expr), fungsi yng dapat menghasilkan nilai tertinggi sekelompok nilai dari sebuah kolom (field) numerik

MIN(expr), fungsi untuk menghasilkan nilai terendah sekelompok nilai dari sebuah kolom (field) numerik

SUM(expr), fungsi yang dapat menghasilkan nilai total jumlah sekelompok nilai dari sebuah kolom (field) numerik.

STDDEV_POP(expr), fungsi untuk menghasilkan nilai standart deviasi populasi dari expr.

VAR_POP(expr), fungsi yang dapat menghasilkan nilai standart varian populasi dari expr.


(42)

Modul Praktikum Sistem Basis Data ... 42 8. Fungsi Seleksi Kondisi

IF (expr1, expr2, expr3), fungsi pengujian yang dapat menghasilkan nilai expr2 jika expr1 terpenuhi atau bernilai TRUE, dan akan menampilkan nilai expr3 jika expr1 tidak terpenuhi atau bernilai FALSE.

IFNULL(expr1, expr2), fungsi pengujian untuk menghasilkan nilai expr1, jika expr1 tidak NULL, dan akan menampilkan nilai expr2 jika expr1 adalah NULL. CASE WHEN [condition] THEN [result] [WHEN [condition] THEN [result] …]

[ELSE result] END

E. LANGKAH-LANGKAH PRAKTIKUM

Guna membantu pemahaman kita dalam menggunakan berbagai macam fungsi bawaan (build in function) MySQL, lakukan beberapa perintah query berikut ini;

a. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi string berikut ini; mysql> SELECT ASCII('2');

mysql> SELECT ASCII(2); mysql> SELECT ASCII('dx'); mysql> SELECT BIN(12);

mysql> SELECT CHAR(77,121,83,81,'76'); mysql> SELECT CHAR(77,77.3,'77.3');

mysql> SELECT CHAR_LENGTH(„SRI DEVI');

Apa yang dapat disimpulkan dari penggunaan fungsi string ASCII, BIN, CHAR dan CHAR_LENGTH ?

……… ……… ……… ……… ……… ……… b. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi string berikut ini;

mysql> SELECT CONCAT(„SRI‟, „DEVI', „PERMATASARI‟);

mysql> SELECT CONCAT_WS(„-‟, „SRI DEVI', „PERMATA‟, „SARI‟); mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');


(43)

Modul Praktikum Sistem Basis Data ... 43 mysql> SELECT FIND_IN_SET('b', 'a, b, c, d');

mysql> SELECT INSERT('Quadratic', 3, 4, 'What'); mysql> SELECT RIGHT('MySQL', 3);

mysql> SELECT LENGTH ( 'text');

Apa yang dapat disimpulkan dari penggunaan fungsi string CONCAT, FIELD, FIND_IN_SET, INSERT, RIGHT dan LENGTH ?

……… ……… ……… ……… ……… ……… c. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi string berikut ini;

mysql> SELECT LOCATE('bar', 'foobarbar'); mysql> SELECT LOCATE('xbar', 'foobar'); mysql> SELECT LOCATE('bar', 'foobarbar',5); mysql> SELECT LOWER('MySQL');

mysql> SELECT RTRIM(' barbar'); mysql> SELECT ORD('2');

mysql> SELECT QUOTE('Don\'t'); mysql> SELECT QUOTE(NULL); mysql> SELECT REPEAT('MySQL', 3);

Apa yang dapat disimpulkan dari penggunaan fungsi string LOCATE, LOWER, RTRIM, ORD, QUOTE dan REPEAT ?

……… ……… ……… ……… ……… ……… d. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi string berikut ini;


(44)

Modul Praktikum Sistem Basis Data ... 44 mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');

mysql> SELECT REVERSE('MySQL'); mysql> SELECT RIGHT('MySQL', 3); mysql> SELECT RTRIM('barbar '); mysql> SELECT SPACE(6);

mysql> SELECT SUBSTRING('Quadratically',5); mysql> SELECT SUBSTRING('foobarbar' FROM 4);

mysql> SELECT SUBSTRING('foobarbar' FROM 4 FOR 3); mysql> SELECT SUBSTRING('Quadratically', 5, 6);

mysql> SELECT RTRIM(' barbar '); mysql> SELECT UPPER('mySQL');

Apa yang dapat disimpulkan dari penggunaan fungsi string REPLACE, REVERSE, RIGHT, SPACE, SUBSTRING, RTRIM dan UPPER ?

……… ……… ……… ……… ……… ……… e. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi numerik berikut ini;

mysql> SELECT ABS (2); mysql> SELECT ABS (-32); mysql> SELECT ACOS (1); mysql> SELECT ACOS (1,0001); mysql> SELECT ACOS (0); mysql> SELECT ASIN (0,2); mysql> SELECT ASIN ( 'foo'); mysql> SELECT ATAN(2); mysql> SELECT ATAN(-2); mysql> SELECT CEIL(2.43); mysql> SELECT CEIL(-2.43);


(45)

Modul Praktikum Sistem Basis Data ... 45 mysql> SELECT COS(PI());

Apa yang dapat disimpulkan dari penggunaan fungsi numerik ABS, ACOS, ASIN, ATAN, CEIL dan COS ?

……… ……… ……… ……… ……… ……… f. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi numerik berikut ini;

mysql> SELECT COT(12); mysql> SELECT COT(0);

mysql> SELECT DEGREES(PI()); mysql> SELECT EXP(2);

mysql> SELECT EXP(-2); mysql> SELECT FLOOR(2.43); mysql> SELECT FLOOR(-2.43); mysql> SELECT LN(2);

mysql> SELECT LN(-2); mysql> SELECT LOG(2); mysql> SELECT LOG(-2); mysql> SELECT LOG(2,65536); mysql> SELECT LOG(1,100); mysql> SELECT LOG10(2); mysql> SELECT LOG10(100); mysql> SELECT LOG10(-100);

Apa yang dapat disimpulkan dari penggunaan fungsi numerik COT, DEGREES, EXP, FLOOR, LN, LOG dan LOG10 ?

……… ……… ………


(46)

Modul Praktikum Sistem Basis Data ... 46 ……… ……… ……… g. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi numerik berikut ini;

mysql> SELECT MOD(234, 10); mysql> SELECT 253 % 7; mysql> SELECT MOD(9, 2); mysql> SELECT 9 MOD 2; mysql> SELECT PI();

mysql> SELECT PI()+0.000000000000000000; mysql> SELECT POW(2, 2);

mysql> SELECT POW(2, -2); mysql> SELECT POW(5, 3); mysql> SELECT RADIANS(90); mysql> SELECT RADIANS(30); mysql> SELECT RAND(); mysql> SELECT RAND(20);

Apa yang dapat disimpulkan dari penggunaan fungsi numerik MOD, PI, POW, RADIAN dan RAND ?

……… ……… ……… ……… ……… ……… h. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi numerik berikut ini;

mysql> SELECT ROUND(-1.23); mysql> SELECT ROUND(-1.58); mysql> SELECT ROUND(1.58); mysql> SELECT ROUND(1.298, 1); mysql> SELECT ROUND(23.298, -1);


(47)

Modul Praktikum Sistem Basis Data ... 47 mysql> SELECT SIN(RADIANS(90));

mysql> SELECT SIN(RADIANS(30)); mysql> SELECT SQRT(4);

mysql> SELECT SQRT(20);

mysql> SELECT TAN(RADIANS(45)); mysql> SELECT TAN(RADIANS(30)); mysql> SELECT TRUNCATE(1.223,1); mysql> SELECT TRUNCATE(-1.999,1);

Apa yang dapat disimpulkan dari penggunaan fungsi numerik ROUND, SIN, SQRT, TAN dan TRUNCATE ?

……… ……… ……… ……… ……… ……… i. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi date and time berikut ini;

mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY); mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY); mysql> SELECT ADDDATE('1998-01-02', 31);

mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999', '1 1:1:1.000002'); mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');

mysql> SELECT CURDATE(); mysql> SELECT CURDATE() + 0; mysql> SELECT CURTIME(); mysql> SELECT CURTIME() + 0;

Apa yang dapat disimpulkan dari penggunaan fungsi date and time DATE_ADD, ADDDATE, CURDATE dan CURTIME ?

……… ……… ………


(48)

Modul Praktikum Sistem Basis Data ... 48 ……… ……… ……… j. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi date and time berikut ini;

mysql> SELECT DATE('2003-12-31 01:02:03');

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y'); mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%D %y %a %d %m %b %j');

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00','%H %k %I %r %T %S %w');

mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V'); mysql> SELECT DAYOFMONTH('1998-02-03');

mysql> SELECT DAYNAME('1998-02-05'); mysql> SELECT DAYOFWEEK('1998-02-03'); mysql> SELECT DAYOFYEAR('1998-02-03'); mysql> SELECT NOW();

mysql> SELECT NOW() + 0;

Apa yang dapat disimpulkan dari penggunaan fungsi date and time DATE, DATE_FORMAT, DAYOFMONTH, DAYNAME, DAYOFWEEK, DAYOFYEAR dan NOW ?

……… ……… ……… ……… ……… ……… k. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi seleksi kondisi berikut

ini;

mysql> SELECT IF(1>2,2,3); mysql> SELECT IF(1<2,'yes','no');


(49)

Modul Praktikum Sistem Basis Data ... 49 mysql> SELECT IF(STRCMP('test','test1'),'no','yes');

mysql> SELECT IFNULL(1,0); mysql> SELECT IFNULL(NULL,10); mysql> SELECT IFNULL(1/0,10); mysql> SELECT IFNULL(1/0,'yes');

mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END; mysql> SELECT CASE BINARY 'B'

WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;

Apa yang dapat disimpulkan dari penggunaan fungsi seleksi kondisi IF, IFNULL dan CASE WHEN ?

……… ……… ……… ……… ……… ………


(50)

Modul Praktikum Sistem Basis Data ... 50

PRAKTIKUM V

MEMBUAT, MERUBAH, MENDUPLIKASI

DAN MENGHAPUS TABEL

A. LATAR BELAKANG

Kemampuan untuk mengunakan bahasa query untuk membuat, merubah, menduplikasi dan menghapus sebuah Tabel, sangat dibutuhkan oleh perancang database. Desain database secara konsep yang telah dibuat harus dapat diimplementasikan secara fisik ke dalam server database.

Basisdata (database) merupakan sekumpulan objek yang dapat terdiri dari tabel, view maupun yang lainnya, yang terhububung satu dengan lainnya. Objek tabel sebagai salah satu komponen vital dari sebuah database harus dibuat/diciptakan terlebih dahulu sebelum melakukan penyimpanan data (record). Pada kondisi tertentu, terkadang sebuah tabel perlu untuk dilakukan perubahan struktur datanya, digandakan, dirubah namanya atau bahkan tabel tersebut harus dihapus dari sebuah database.

Guna membantu meningkatkan pemahaman mahasiswa dalam menggunakan berbagai macam perintah query dalam lingkup Data Definition Statement (DDS), utamanya untuk membuat, merubah struktur data, menggandakan dan menghapus sebuah tabel, diperlukan tindakan uji coba dalam praktikum berikut ini.

B. TUJUAN

Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat membuat, merubah (memodifikasi), menggandakan serta menghapus objek Tabel dengan menggunakan Data Definition Statemen (DDS).

C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN

Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan software yang dibutuhkan sebelum melakukan praktikum ini adalah;


(1)

Modul Praktikum Sistem Basis Data ... 81 Gambar 9: Fasilitas Restore Data Pada MySQL Administrator


(2)

Modul Praktikum Sistem Basis Data ... 82 6. Replikasi Data

Replikasi data merupakan proses backup data dari server aktif secara real time dan berlansung secara terus menerus, ke suatu mesin server cadangan. Membuat backup dengan menggunakan fasilitas replikasi (replication), memungkinkan didapatkan backup yang sempurna dari suatu database MySQL yang besar dan aktif, tanpa melakukan penghentian dari server yang bersangkutan. Tanpa replikasi, backup akan memperlambat sistem dan ada kemungkinan data yang tidak konsisten, karena bisa saja satu tabel berubah sementara tabel lain yang berhubungan tidak berubah dan karena sedang di-backup.

Mematikan server akan menjamin data yang konsisten, tetapi ini berarti menghentikan layanan pada pengguna dan sangat tidak diharapkan. Kadangkala penghentian ini tidak dapat dihindarkan, tetapi penghentian setiap hari tidak dapat diterima. Metoda alternatif backup data dengan proses replikasi, MySQL menjamin backup sempurna tanpa harus menghentikan server tiap hari.

Replikasi merupakan konfigurasi sistem server MySQL, yang memadukan sistem kerja antara Master Server sebagai penyimpan data dan menangani permintaan pengguna, dengan server MySQL yang lain, yang dinamakan Slave Server. Slave Server sendiri, berisi copy data Master Server, dan melakukan semua SQL statement yang mengubah data di Master Server secara real time. Dengan demikian backup dapat dilakukan secara periodik atau secara terus menerus, tanpa harus mematika server utama. Mekanisme untuk melakukan replikasi data, adalah dengan melakukan seting/konfigurasi pada kedua mesin server, baik pada Master Server maupun pada Slave Server. Berikut ini langkah-langkah dalam melakukan konfigurasi proses replikasi data pada kedua mesin server;

7.1 Konfigurasi Pada Master Server

Konfigurasi yang harus dilakukan pada mesin Master Server adalah sebagai berikut;  Lakukan perubahan seting pada file C:\Program Files\MySQL\MySQL Server

5.0\My.ini, dengan menggunakan program Text Editor  Tambahkah skrip berikut pada bagian [mysqld]

[mysqld]

log-bin=mysql-bin

server-id=1  Nomer/Id mesin Master Server


(3)

Modul Praktikum Sistem Basis Data ... 83  Aktifkan Program MySQL Administrator, dan lakukan sesi login ke server MySQL

dengan user root

 Lakukan restarting server dengan memilih modul Servis Control, kemudian pilih/click tombol Stop Service untuk menghentikan server. Aktifkan kembali dengan pilih/click tombol Start Service.

 Masuklah ke server MySQL sebagai root melalui program MySQL Query Browser, dengan urutan menu yang dipilih Start  Programs  MySQL  MySQL Query Browser. Masukkan server host, port, user name dan password yang sesuai, serta default schema yang diinginkan. Click OK.

Gambar 11: Kotak Dialog Koneksi ke Server Dengan MySQL Query Browser  Buatlah user baru melalui interface Query Browser, misalkan dengan nama replikator

dan hak aksesnya adalah replication slave. GRANT REPLICATION SLAVE

ON *.* TO „replikator‟@‟slave_host‟  atau nomer IP mesin Slave Server

IDENTIFIED BY „12345‟;  12345 merupakan password dari user

replikator

 Jalankan perintah berikut flush privileges;


(4)

Modul Praktikum Sistem Basis Data ... 84 show maseter status;

 Lakukan backup data untuk database yang akan direplikasi. Backup data dapat dilakukan dengan menggunakan modul Backup pada program MySQL Administrator. Dalam contoh berikut, database yang akan direplikasi adalah database/schema test.

Gambar 12: Proses Backup Data

 Lihat status replikasi dengan menggunakan modul Repliction Status pada program MySQL Administrator. Pilih/click tombol Refresh, kemudian catat log file (biasanya mysql-bin.0000xx) dan log pos-nya. Nama log file dan nomer log pos, selanjutnya akan digunakan untuk menyeting mesin Slave Server.


(5)

Modul Praktikum Sistem Basis Data ... 85 Gambar 13: Informasi Log File dan Log Pos Pada Modul Replication Status 7.2 Konfigurasi Pada Slave Server

Konfigurasi yang harus dilakukan pada mesin Master Server adalah sebagai berikut;  Lakukan proses restoring data dari file hasil proses backup data yang telah dilakukan di

mesin Master Server. Gunakan modul Restore pada program MySQL Administrator, dan login ke mesin Slave Server sebagai root.

 Lakukan perubahan seting pada file C:\Program Files\MySQL\MySQL Server 5.0\My.ini, dengan menggunakan program Text Editor.

 Tambahkah skrip berikut pada bagian [mysqld] [mysqld]

server-id=2  Nomer/Id mesin Slave Server

master-host=192.168.0.1  sesuaikan dengan IP mesin Master Server

master-port=3306  sesuaikan dengan nomer Port yang digunakan

master-user=replikator  nama user pemilik hak replication slave master-password=12345  password user pemilik hak replication slave master-connect-retry=60

replicate-do-db=test  nama database/schema yang akan direplikasi relay-log=mysql-bin.0000xx  nama log file yang tercatat di mesin Master Server


(6)

Modul Praktikum Sistem Basis Data ... 86  Simpan dan tutup file tersebut

 Aktifkan Program MySQL Administrator, dan lakukan sesi login ke server MySQL dengan user root

 Lakukan restarting server dengan memilih modul Servis Control, kemudian pilih/click tombol Stop Service untuk menghentikan server. Aktifkan kembali dengan pilih/click tombol Start Service.

 Masuklah ke server MySQL sebagai root melalui program MySQL Query Browser, dengan urutan menu yang dipilih Start  Programs  MySQL  MySQL Query Browser. Masukkan server host, port, user name dan password yang sesuai, serta default schema yang diinginkan. Click OK.

 Lakukan seting dengan perintah-perintah berikut pada interface Query Browser; stop slave;

change master to

master_host=’192.168.0.1’,  sesuaikan dengan IP mesin Master Server

master_user=’replikator’,  nama user pemilik hak replication slave

master_password=’12345’,  password user pemilik hak replication

slave

master_log_file=’mysql-bin.0000xx’,  log file yang tercatat di mesin Master Server

master_log_pos=xxx;  log pos yang tercatat di mesin Master Server

start slave;

Setelah semua langkah-langkah penyetingan dilakukan, baik pada mesin Master Server maupun pada Slave Server dan mesin Slave Server sudah dapat dipastikan aktif, maka semua perubahan data yang terjadi pada mesin Master Server akan berlaku pula pada mesin Server Slave.