STMIK PPKIA Pradnya Paramita
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. 3. Melakukan sesi login ke server MySQL dengan beberapa cara
Modul Praktikum Sistem Basis Data ..............................................................................
1
STMIK PPKIA Pradnya Paramita 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 : Modul Praktikum Sistem Basis Data ..............................................................................
2
STMIK PPKIA Pradnya Paramita
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
Modul Praktikum Sistem Basis Data ..............................................................................
3
STMIK PPKIA Pradnya Paramita 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-guitools-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 objekobjek 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;
Modul Praktikum Sistem Basis Data ..............................................................................
4
STMIK PPKIA Pradnya Paramita
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, Modul Praktikum Sistem Basis Data ..............................................................................
5
STMIK PPKIA Pradnya Paramita
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)
Modul Praktikum Sistem Basis Data ..............................................................................
6
STMIK PPKIA Pradnya Paramita
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. Modul Praktikum Sistem Basis Data ..............................................................................
7
STMIK PPKIA Pradnya Paramita
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 Modul Praktikum Sistem Basis Data ..............................................................................
8
STMIK PPKIA Pradnya Paramita 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.
Gambar 10: Kondisi Proses Konfigurasi Sukses Dieksekusi
Modul Praktikum Sistem Basis Data ..............................................................................
9
STMIK PPKIA Pradnya Paramita 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.
Gambar 12: License Agreement MySQL Tools Modul Praktikum Sistem Basis Data ..............................................................................
10
STMIK PPKIA Pradnya Paramita 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.
Modul Praktikum Sistem Basis Data ..............................................................................
11
STMIK PPKIA Pradnya Paramita
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;
Gambar 16: Prompt/Shell MySQL Modul Praktikum Sistem Basis Data ..............................................................................
12
STMIK PPKIA Pradnya Paramita 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; Modul Praktikum Sistem Basis Data ..............................................................................
13
STMIK PPKIA Pradnya Paramita
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;
Gambar 21: Perintah Untuk Mengakhiri Sesi Login Ke Server MySQL Modul Praktikum Sistem Basis Data ..............................................................................
14
STMIK PPKIA Pradnya Paramita
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) Modul Praktikum Sistem Basis Data ..............................................................................
15
STMIK PPKIA Pradnya Paramita 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
TO IDENTIFIED BY <"password"> [WITH GRANT ] Bentuk umum perintah REVOKE: REVOKE <jenis akses> ON FROM Bentuk umum perintah DELETE: DELETE FROM USER WHERE USER=
Modul Praktikum Sistem Basis Data ..............................................................................
16
STMIK PPKIA Pradnya Paramita 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; mysql>SELECT user, host, password FROM user;
Modul Praktikum Sistem Basis Data ..............................................................................
17
STMIK PPKIA Pradnya Paramita 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; C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p Modul Praktikum Sistem Basis Data ..............................................................................
18
STMIK PPKIA Pradnya Paramita 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;
Modul Praktikum Sistem Basis Data ..............................................................................
19
STMIK PPKIA Pradnya Paramita 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; mysql>SELECT column_priv WHERE user=‟anwar‟;
Modul Praktikum Sistem Basis Data ..............................................................................
20
STMIK PPKIA Pradnya Paramita 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; Modul Praktikum Sistem Basis Data ..............................................................................
21
STMIK PPKIA Pradnya Paramita 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 [email protected]; 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. 1 2 3 4 5
Nama User
Pswd
Database & Table
Andi Amir Ahmad Anik Ana
11111 22222 33333 44444 55555
*.* ujimhsdb.dosen ujimhsdb.* ujimhsdb.ujian *.*
All
Select
Insert
√
Hak Akses Update Delete √
√
√
√
Create
Drop √
√ √ √
Modul Praktikum Sistem Basis Data ..............................................................................
22
STMIK PPKIA Pradnya Paramita b. Rubahlah hak akses user-user berikut No. 1 2 3 4 5
Nama User
Pswd
Database & Table
Andi Amir Ahmad Anik Ana
11111 22222 33333 44444 55555
*.* ujimhsdb.dosen ujimhsdb.* ujimhsdb.ujian *.*
All
Select √ √ √ √ √
Insert √ √ √ √
Hak Akses Update Delete √ √ √ √ √
Create
Drop
√
√
Create
Drop
c. Daftarkan user-user berikut beserta hak aksesnya No. 1 2 3 4 5
Nama User Budi Badu Bimbim Badrus Bobi
Pswd
Database & Table
AAAA BBBB CCCC EEEE FFFF
*.* ujimhsdb.hsl_ujian ujimhsdb.* ujimhsdb.dosen *.*
All
Select
Insert √
Hak Akses Update Delete √
√
√ √
√
√
d. Rubah hak akses user-user berikut No. 1 2 3 4 5
Nama User Budi Badu Bimbim Badrus Bobi
Pswd
Database & Table
AAAA BBBB CCCC EEEE FFFF
*.* ujimhsdb.hsl_ujian ujimhsdb.* ujimhsdb.dosen *.*
All
Select √ √ √ √ √
Insert √ √
Hak Akses Update Delete √ √ √ √ √ √
Create
Drop √
√ √ √
Modul Praktikum Sistem Basis Data ..............................................................................
23
STMIK PPKIA Pradnya Paramita
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
Modul Praktikum Sistem Basis Data ..............................................................................
24
STMIK PPKIA Pradnya Paramita 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 Modul Praktikum Sistem Basis Data ..............................................................................
25
STMIK PPKIA Pradnya Paramita 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 TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
FLOAT
Bentuk Penulisan
Jangkauan Nilai
Ukuran
TINYINT [(M)] [UNSIGNED] [ZEROFILL] SMALLINT [(M)] [UNSIGNED] [ZEROFILL] MEDIUMINT [(M)] [UNSIGNED] [ZEROFILL] INT [(M)] [UNSIGNED] [ZEROFILL] BIGINT [(M)] [UNSIGNED] [ZEROFILL]
Bilangan bulat dengan kisaran nilai: SIGNED: -128 s/d 127 UNSIGNED: 0 s/d 255 Bilangan bulat dengan kisaran nilai: SIGNED: -32768 s/d 32767 UNSIGNED: 0 s/d 65535 Bilangan bulat dengan kisaran nilai: SIGNED: -8388608 s/d 8388607 UNSIGNED: 0 s/d 1677215 Bilangan bulat dengan kisaran nilai SIGNED:-2147683648 s/d 2147683647 UNSIGNED: 0 s/d 4294967295 Bilangan bulat dengan kisaran nilai: SIGNED: -9223372036854775808 s/d 9223372036854775807 UNSIGNED:0 s/d 18446744073709551615
FLOAT [(M,D)] [UNSIGNED] [ZEROFILL] atau FLOAT(4)
Bilangan pecahan presisi tunggal dengan 4 Byte kisaran nilai: Nilai minimum (tanpa nilai nol) 1.175494351E-38
DOUBLE
DOUBLE [(M,D)] [UNSIGNED] [ZEROFILL] atau FLOAT(8)
DECIMAL
DECIMAL [(M,D)]
1 Byte
2 Byte
3 Byte
4 Byte
8 Byte
Nilai maksimum (tanpa nilai nol) 6.402823466E+38 Bilangan pecahan presisi ganda 8 Byte (double precision) dengan kisaran nilai: Nilai minimun (tanpa nilai nol) 2.2250738580720E-308 Nilai maksimum (tanpa nilai nol) ±1.7976931348623157E+308 Bilangan desimal, dengan nilai M Byte M Byte tergantung pada besaran M dan D.
Modul Praktikum Sistem Basis Data ..............................................................................
26
STMIK PPKIA Pradnya Paramita 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(M)
Data string dengan lebar data yang bervariasi(M). Maksimum lebar data 255 karakter
M Byte
VARCHAR
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
Data text dengan lebar data maksimum 4.294.967.295 karakter LONGTEXT Catatan: M merupakan nilai maksimum yang diperkenankan dengan kisaran 1 s/d 255.
2.4
M+4 Byte
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 ENUM
Bentuk Dasar ENUM(nilai1, nilaiN)
nilai2,
Keterangan …..,
Hanya dapat menampung 1 data saja dari pilihan data yang ada atau NULL, dengan jumlah pilihan maksimum 65.535 pilihan data.
Modul Praktikum Sistem Basis Data ..............................................................................
27
STMIK PPKIA Pradnya Paramita Jenis Kolom SET
Bentuk Dasar
Keterangan
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”)
2.5
Hobby SET(“Makan”, “Tidur”, “Olah Raga”, “Travelling”, “Baca”) 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:
Modul Praktikum Sistem Basis Data ..............................................................................
28
STMIK PPKIA Pradnya Paramita Operator Logika Tabel 5: Operator Logika Operator
Fungsi Sebagai NEGASI (bukan) dari suatu nilai ATAU, akan bernilai benar bila salah satu atau kedua ekspresi adalah benar.
NOT atau ! OR atau ||
DAN, akan bernilai benar hanya bila ekspresi adalah benar.
AND atau &&
Contoh NOT Perempuan atau !Perempuan Buah=”Jambu” OR Buah=”Mangga” Atau Buah=”Jambu” || Buah=”Mangga” 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
Tidak sama dengan
Nama!=”anwar” Harga<>100 3!=2
Apakah nilai tidak NULL
Nama IS NOT NULL
!= atau <> IS NOT NULL
Modul Praktikum Sistem Basis Data ..............................................................................
29
STMIK PPKIA Pradnya Paramita Operator IS NULL BETWEEN … AND
Fungsi
Contoh
Apakah nilai NULL
Nama IS NULL
Apakah suatu nilai berada diantara nilai
Harga BETWEEN 150 AND 500
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
IN
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
Modul Praktikum Sistem Basis Data ..............................................................................
30
STMIK PPKIA Pradnya Paramita Urutan Prioritas
E.
Operator
10
BETWEEN
11
AND atau &&
12
OR atau ||
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, ->kota VARCHAR(35) NOT NULL);
Modul Praktikum Sistem Basis Data ..............................................................................
31
STMIK PPKIA Pradnya Paramita 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. Ulangi dan sesuaian perintah tersebut untuk menambahkan data lain pada table teman Modul Praktikum Sistem Basis Data ..............................................................................
32
STMIK PPKIA Pradnya Paramita 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; Modul Praktikum Sistem Basis Data ..............................................................................
33
STMIK PPKIA Pradnya Paramita 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$”;
Modul Praktikum Sistem Basis Data ..............................................................................
34
STMIK PPKIA Pradnya Paramita 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 adalah perintah pengurutan data berdasarkan field yang dimaksud. Defauldnya adalah urut berdasarkan PRIMARY KEY.
Modul Praktikum Sistem Basis Data ..............................................................................
35
STMIK PPKIA Pradnya Paramita
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
Modul Praktikum Sistem Basis Data ..............................................................................
36
STMIK PPKIA Pradnya Paramita D. TEORI DASAR Fungsi merupakan sekumpulan perintah/instruksi untuk menghasilkan sebuah nilai, dengan atau tanpa melewatkan parameter. Pada MySQL telah terdapat sekumpulan fungsifungsi 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.
Modul Praktikum Sistem Basis Data ..............................................................................
37
STMIK PPKIA Pradnya Paramita
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
Modul Praktikum Sistem Basis Data ..............................................................................
38
STMIK PPKIA Pradnya Paramita 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.
Modul Praktikum Sistem Basis Data ..............................................................................
39
STMIK PPKIA Pradnya Paramita
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().
Modul Praktikum Sistem Basis Data ..............................................................................
40
STMIK PPKIA Pradnya Paramita
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-bulantanggal (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.
Modul Praktikum Sistem Basis Data ..............................................................................
41
STMIK PPKIA Pradnya Paramita 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');
Modul Praktikum Sistem Basis Data ..............................................................................
42
STMIK PPKIA Pradnya Paramita 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; Modul Praktikum Sistem Basis Data ..............................................................................
43
STMIK PPKIA Pradnya Paramita 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); Modul Praktikum Sistem Basis Data ..............................................................................
44
STMIK PPKIA Pradnya Paramita 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 ? …………………………………………………………………………………………………… …………………………………………………………………………………………………… ……………………………………………………………………………………………………
Modul Praktikum Sistem Basis Data ..............................................................................
45
STMIK PPKIA Pradnya Paramita …………………………………………………………………………………………………… …………………………………………………………………………………………………… ……………………………………………………………………………………………………
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); Modul Praktikum Sistem Basis Data ..............................................................................
46
STMIK PPKIA Pradnya Paramita 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 ? …………………………………………………………………………………………………… …………………………………………………………………………………………………… ……………………………………………………………………………………………………
Modul Praktikum Sistem Basis Data ..............................................................................
47
STMIK PPKIA Pradnya Paramita …………………………………………………………………………………………………… …………………………………………………………………………………………………… ……………………………………………………………………………………………………
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'); Modul Praktikum Sistem Basis Data ..............................................................................
48
STMIK PPKIA Pradnya Paramita 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 ? …………………………………………………………………………………………………… …………………………………………………………………………………………………… …………………………………………………………………………………………………… …………………………………………………………………………………………………… …………………………………………………………………………………………………… ……………………………………………………………………………………………………
Modul Praktikum Sistem Basis Data ..............................................................................
49
STMIK PPKIA Pradnya Paramita
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;
Modul Praktikum Sistem Basis Data ..............................................................................
50
STMIK PPKIA Pradnya Paramita 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
D. TEORI DASAR 1.
Menciptakan Table Table merupakan salah satu bentuk object dalam sebuah database dan merupakan
bagian dari struktur database dalam MySQL. Object table digunakan untuk menyimpan dan mengelompokkan data yang berelasi. Kumpulan data dalam bentuk table tersebut biasanya mepresentasikan sebuah entitas atau kejadian tertentu. Table dapat tersusun atas satu atau beberapa kolom/field dengan nama yang berbeda. Data pada setiap kolom atau field memiliki tipe/jenis data yang homogen (sama). Istilah Record digunakan untuk menyebutkan kumpulan data dari kolom-kolom yang sebaris dan memiliki keterkaitan secara logika. Table harus tercipta terlebih dahulu, agar dapat digunakan untuk menyimpan sekumpulan data. Bentuk umum perintah untuk membuat table dalam sebuah database adalah sebagai berikut; CREATE TABLE [IF NOT EXISTS] (); Perintah
CREATE
DATABASE
digunakan
untuk
membuat/menciptakan database. Sedangkan perintah untuk menambah atau menyisipkan data pada sebuah table, dapat menggunakan perintah; INSERT [INTO] [(col_name1, col_name2, …)] VALUES() atau INSERT [INTO] SET col_name1=value1, col_name2=value2, …. atau INSERT [INTO] [(col_name1, col_name2, …)] SELECT ….
Modul Praktikum Sistem Basis Data ..............................................................................
51
STMIK PPKIA Pradnya Paramita Contoh : mysql>INSERT INTO dosen ->VALUES („D1001‟,‟Roy Sungkono 93‟); atau
Markun‟,‟L‟,‟Bogor‟,‟1969-01-23‟,‟Jl.
Mayjend.
mysql>INSERT INTO dosen (kode_dosen, nama_dosen, kelamin, tgl_lahir, alamat) ->VALUES („D1001‟,‟Roy Markun‟,‟L‟,‟Bogor‟,‟1969-01-23‟,‟Jl. Mayjend. Sungkono 93‟); atau mysql>INSERT INTO dosen SET ->kode_dosen=„D1001‟, ->nama_dosen=‟Roy Markun‟, ->kelamin=‟L‟, ->tmp_lahir=‟Bogor‟, ->tgl_lahir=‟1969-01-23‟, ->alamat=‟Jl. Mayjend. Sungkono 93‟;
2. Menduplikasi Table Menduplikasi atau men-copy table dapat dilakukan dengan cara mudah, dimana menduplikasi table disini mempunyai arti bahwa yang diduplikasi adalah struktur table dan datanya. Perintah yang dapat digunakan untuk menduplikasi table adalah sebagai berikut; CREATE TABLE SELECT * FROM <source_table_name>; new_table_name adalah nama table hasil duplikasi, sedangkan source_table_name merupakan nama table sumber yang akan diduplikasi.
3. Mengganti Nama Table Mengganti nama table dapat dilakukan dengan cara yang sederhana, yaitu dengan memberikan perintah SQL sebagai berikut; ALTER TABLE RENAME ; atau RENAME TABLE TO ; Original_table_name adalah nama asli dari table yang akan diganti, sedangkan new_table_name merupakan nama pengganti.
Modul Praktikum Sistem Basis Data ..............................................................................
52
STMIK PPKIA Pradnya Paramita 4. Menghapus Table Perintah SQL yang dapat digunakan untuk menghapus sebuah table cukup sederhana, yaitu dengan cara sebagai berikut; DROP TABLE [IF EXISTS] ; DROP TABLE dapat digunakan untuk mengghapus satu atau beberapa table sekaligus. 5. Merubah Struktur Table Perintah untuk melakukan perubahan struktur table sangat variatif. Bervariasinya perintah SQL untuk merubah struktur table, tidak lepas dari pertanyaan “bagian apa dari struktur table yang akan dirubah?”. Beberapa bagian dari struktur table yang dapat dirubah diantaranya adalah mengganti nama dan tipe data dari sebuah kolom/field, menambah, merubah urutan dan menghapus field, menambah dan menghapus Primary Key dan Foreign Key, menambah dan mengurangi konstrain Unique, menambah Index sebuah table dan sebagainya. Walau sangat bervariasi, namun pada intinya perintah untuk merubah struktur table adalah sebagai berikut; ALTER TABLE …..; Dimana perubahan-perubahan struktur table yang dapat dilakukan adalah menambah (ADD), mengganti (CHANGE), menghapus (DROP) dan merubah (MODIFY). 5.1
Mengganti Nama dan Tipe Data Field Mengganti nama dan tipe data dari sebuah field, dapat dilakukan dengan cara sebagai
berikut; ALTER
TABLE
CHANGE
COLUMN
; table_name adalah nama table yang akan dirubah strukturnya, column_name merupakan nama kolom/field yang akan diganti dan column_definition adalah definisi atribut pengganti dari kolom/field yang dimaksud. Pendefinisian atribut penggati ini dapat berupa nama filed baru maupun tipe data dari field yang dimaksud dan panjangnya.
Modul Praktikum Sistem Basis Data ..............................................................................
53
STMIK PPKIA Pradnya Paramita 5.2
Menambah Field Menambah field pada sebuah tabel dapat dilakukan dengan cara memberikan perintah
SQL sebagai berikut; ALTER
TABLE
ADD
COLUMN
AFTER ; atau ALTER
TABLE
ADD
COLUMN
FIRST
; Perintah AFTER menyatakan bahwa filed baru akan diletakkan setelah filed tertentu, sedang perintah FIRST menyatakan bahwa field baru akan menjadi field pertama.
5.3
Merubah Urutan Field Merubah urutan field dalam sebuah tabel dapat dilakukan dengan memindah urutan
field yang dimaksud menjadi urutan pertama (FIRST), atau setelah urutan field lainnya (AFTER). Perintah SQL untuk merubah urutan field pada sebuah tabel adalah sebagai berikut; ALTER TABLE MODIFY FIRST; atau ALTER TABLE MODIFY AFTER ;
5.4
Menghapus Field Menghapus field dalam sebuah tabel dapat dilakukan dengan cara menghapus satu
persatu field yang dimksud, atau beberapa field sekaligus. Perintah SQL untuk menghapus field pada sebuah tabel adalah sebagai berikut; ALTER TABLE DROP COLUMN
Modul Praktikum Sistem Basis Data ..............................................................................
54
STMIK PPKIA Pradnya Paramita 5.5
Menambah dan Menghapus Primary Key dan Foreign Key Menambah kunci utama (Primary Key) pada sebuah tabel dapat dilakukan dengan
perintah SQL sebagai berikut; ALTER TABLE ADD PRIMARY KEY ; Sedangkan perintah SQL untuk menambah kunci tamu (Foreign Key) adalah sebagai berikut; ALTER TABLE ADD COINSTRAINT FOREIGN KEY () REFERENCES () [ON DELETE] [RESTRICT ON UPDATE RESTRICT];
E. LANGKAH-LANGKAH PRAKTIKUM Guna membantu pemahaman kita dalam menggunakan perintah-perintah Data Definition Statement (DDS) untuk membuat, merubah, menduplikasi dan menghapus objek Table, lakukan beberapa perintah query berikut ini; a. Masuklah ke MySQL sebagai root; C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p Enter password: rootpassword b. Buatlah database ujimhsdb; mysql>CREATE DATABASE ujimhsdb; mysql>USE ujimhsdb; c. Buatlah table-table mahasiswa, matakuliah, dosen, jenis ujian dan hasil ujian mahasiswa sebagai berikut; mysql>CREATE TABLE mahasiswa ->(nim VARCHAR(7) NOT NULL PRIMARY KEY, ->nama_mhs 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); mysql>CREATE TABLE dosen ->(kode_dosen VARCHAR(5) NOT NULL PRIMARY KEY, ->nama_dosen VARCHAR(35) NOT NULL, ->kelamin ENUM(„L‟,‟P‟), ->tmp_lahir VARCHAR(35) NOT NULL, Modul Praktikum Sistem Basis Data ..............................................................................
55
STMIK PPKIA Pradnya Paramita ->tgl_lahir DATE NULL DEFAULT “0000-00-00”, ->alamat VARCHAR(50) NOT NULL); mysql>CREATE TABLE jenisujian ->(kode_ujian VARCHAR(3) NOT NULL PRIMARY KEY, ->nama_ujian VARCHAR(35) NOT NULL); mysql>CREATE TABLE matakuliah ->(kode_mtk VARCHAR(6) NOT NULL PRIMARY KEY, ->nama_mtk VARCHAR(35) NOT NULL, ->sks INT UNSIGNED, ->kode_dosen VARCHAR(5) NOT NULL); mysql>CREATE TABLE hasilujian ->(nim VARCHAR(7) NOT NULL, ->kode_mtk VARCHAR(6) NOT NULL, ->kode_ujian VARCHAR(3) NOT NULL, ->nilai INT UNSIGNED); mysql>SHOW TABLES; d. Masukkan data berikut ke masing-masing table yang telah tercipta dengan perintah INSERT INTO. Data yang dimasukkan adalah sebagai berikut; Tabel 1: Data Dosen kode_dose n D1001 D1002 D1003 D1004 D1005 D1006 D2001 D2002 D2003
nama_dosen Roy Markun Ginanjar Gina Sonia Ian Antono Indri Jelita Desi Ratnasari Moh. Umar Aisyah Kamila Ike Nurjannah
kelami n L L P L P P P L P
tmp_lahir
tgl_lahir
Bogor Jakarta Bandung Palembang Bengkulu Padang Malang Semarang Surabaya
1969-01-23 1971-03-21 1962-09-12 1970-10-11 1973-07-19 1970-11-09 1973-12-25 1968-10-03 1971-10-10
alamat Jl. Mayjend. Sungkono 93 Jl. Ahmad Yani 100 Jl. Citarum 53 Jl. Raden Saleh II/42 Jl. Ahmad Yani 21 Jl. Mayjend. Panjaitan 45 Jl. Citandui 52 Jl. Panglima Sudirman 15 Jl. Sidodadi 76
Tabel 2: Data Mahasiswa Nim 0151001 0151002 0151003 0151004 0151005 0151006 0151007 0151008 0151009
nama_mhs Gogon Tukul Arwana Timbul Nunung Rohana Jujuk Eko Basuki Lilik Sundari
klm L L L P P P L L P
tmp_lahir Medan Bogor Semarang Manado Cianjur Denpasar Surabaya Madiun Samarang
tgl_lahir 1982-09-29 1982-06-22 1983-04-19 1982-06-09 1981-01-13 1983-11-07 1982-12-07 1982-06-17 1982-12-19
alamat Jl. Arjono 123 Jl. Letjend. Sutoyo 87 Jl. Panglima Sudirman 63 Jl. Merdeka Barat 90 Jl. Kesatrian 100 Jl. Sarangan 75 Jl. Gajayana IV/621B Jl. Sunan Giri 54 Jl. Ambarawa 93
Modul Praktikum Sistem Basis Data ..............................................................................
56
STMIK PPKIA Pradnya Paramita
Tabel 3: Data Jenis Ujian kode_ujian UJR UTS UAS UJP
nama_ujian Ujian Reguler Ujian Tengah Semester Ujian Akhir Semester Ujian Perbaikan
Tabel 4: Data Matakuliah kode_mtk KD_001 KD_002 KD_003 KD_004 KK_001 KK_002 KK_003 KK_004 KK_005 KK_006 KK_007 KK_008
nama_mtk Sistem Basis Data Sistem Operasi Sistem Berkas Arsitektur & Organisasi Komputer Algoritma & Pemrograman 1 Algoritma & Pemrograman 2 Algoritma & Pemrograman 3 Pemrograman Clint-Server Pemrograman Berbasis WEB Pemrograman Berbasis WAP Pemrograman Delphi Pemrograman Visual Basic
sks 3 3 2 3 4 4 2 3 3 3 2 2
kode_dosen D1006 D2002 D1004 D1002 D1001 D2001 D1003 D1003 D2003 D1005 D2001 D1005
Tabel 5: Data Hasil Ujian nim 0151001 0151001 0151001 0151001 0151002 0151002 0151002 0151002 0151003 0151003 0151003 0151003 0151004 0151004 0151004 0151004 0151005 0151005 0151005 0151006 0151006 0151006 0151007
kode_mtk KK_003 KK_004 KK_005 KK_006 KK_007 KK_008 KD_001 KD_002 KD_003 KD_004 KK_001 KK_002 KK_003 KD_001 KD_002 KD_003 KD_004 KK_001 KK_002 KK_003 KK_007 KK_008 KD_001
kode_ujian UJR UTS UAS UJP UJR UTS UJR UTS UTS UAS UJP UJR UTS UAS UTS UAS UJP UJR UTS UAS UAS UJP UJR
nilai 74 82 65 56 67 98 95 83 65 76 85 96 97 88 69 74 44 55 86 67 78 45 56
Modul Praktikum Sistem Basis Data ..............................................................................
57
STMIK PPKIA Pradnya Paramita nim 0151007 0151008 0151009 0151009
kode_mtk KD_002 KD_003 KK_007 KK_008
kode_ujian UAS UJR UJR UTS
nilai 64 76 68 69
e. Lakukan duplikasi table dengan perintah sebagai berikut; mysql>CREATE TABLE copy_dosen SELECT * FROM dosen; mysql>CREATE TABLE copy_mahasiswa SELECT * FROM mahasiswa; mysql>CREATE TABLE copy_matakuliah SELECT * FROM matakuliah; mysql>CREATE TABLE copy_dosen SELECT * FROM dosen WHERE 0=1; f. Lakukan penggantian nama table dengan perintah sebagai berikut; mysql>ALTER TABLE copy_dosen RENAME dosen_copy; mysql>RENAME TABLE dosen_copy TO copy_dosen; mysql>RENAME TABLE copy_mahasiswa TO mahasiswa_copy, ->matakuliah_dosen TO matakuliah_copy; g. Lakukan penghapusan table dengan perintah sebagai berikut; mysql>DROP TABLE copy_dosen; mysql>DROP TABLE mahasiswa_copy, matakuliah_copy; h. Lakukan perubahan pada nama field dan tipe datanya dengan perintah sebagai berikut; mysql>CREATE TABLE dosen_copy SELECT * FROM dosen; mysql> ALTER TABLE dosen_copy CHANGE COLUMN nama_dosen nama_dsn -> VARCHAR(45); mysql> ALTER TABLE dosen_copy MODIFY COLUMN nama_dsn CHAR(45); mysql> ALTER TABLE dosen_copy CHANGE COLUMN nama_dsn nama_dosen -> VARCHAR(45); i. Lakukan penambahan field, perubahan urutan field dan penghapusan field dengan perintah sebagai berikut; mysql> ALTER TABLE dosen_copy ADD COLUMN kota VARCHAR(45) AFTER -> alamat, ADD COLUMN telpon VARCHAR(13) AFTER kota; mysql> ALTER TABLE dosen_copy MODIFY nama_dosen VARCHAR(45) FIRST; mysql> ALTER TABLE dosen_copy MODIFY kelamin ENUM(„L‟, ‟P‟) AFTER tgl_lahir; mysql> ALTER TABLE dosen_copy MODIFY kode_dosen VARCHAR(5) FIRST; Modul Praktikum Sistem Basis Data ..............................................................................
58
STMIK PPKIA Pradnya Paramita mysql> ALTER TABLE dosen_copy DROP COLUMN kota, DROP COLUMN telpon; j. Lakukan penambahan Primary Key dan Foreign Key sebuah Table dengan perintah sebagai berikut; mysql>CREATE TABLE matakuiah_copy SELECT * FROM matakuliah; mysql>ALTER TABLE matakuliah_copy ADD PRIMARY KEY(kode_mtk); mysql>ALTER TABLE matakuliah_copy ADD CONSTRAINT FK_kode_dosen ->FOREIGN KEY FK_kode_dosen (kode_dosen) REFERENCES dosen (kode_dosen) ON DELETE RESTRICT ON UPDATE RESTRICT;
Modul Praktikum Sistem Basis Data ..............................................................................
59
STMIK PPKIA Pradnya Paramita
PRAKTIKUM VI PENGAKSESAN DATA TABEL A. LATAR BELAKANG Pada praktikum sebelumnya, telah dilakukan/diujicobakan beberapa perintah dasar pengaksesan data dari sebuah objek Tabel, yang meliputi: SELECT, FROM, WHERE dan ORDER BY, ditambah lagi dengan penggunaan beberapa operator dan kombinasinya (OR, AND, NOT, LIKE, BETWEEN dsb.). Untuk memenuhi kebutuhan akan informasi tertentu, terkadang dibutuhkan suatu format lapoan dalam bentuk terakumulasi (rekapitulasi) berdasarkan kriteria tertentu. Perintah yang dapat memenuhi hal tersebut adalah dengan perintah GROUP BY dan HAVING. Guna membantu pemahaman kita mengenai penggunaan perintah-perintah MySQL lanjutan tersebut, maka kita dapat mengoptimalkan penggunaan database ujimhsdb yang telah kita buat sebelumnya.
B. TUJUAN Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat melakukan query data dari beberapa tabel dengan menggunakan perintahperintah SELECT …… FROM …… WHERE …… GROUP BY …… HAVING …… ORDER BY ……
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;
Modul Praktikum Sistem Basis Data ..............................................................................
60
STMIK PPKIA Pradnya Paramita 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
D. TEORI DASAR 1.
Menampilkan Data dari Banyak Tabel Menampilkan data dari dua tabel atau lebih, mensyaratkan adanya relasi keduanya
(antar table-table yang dimaksud). Guna memperjelas teori tersebut, marilah kita lihat skema database ujimhsdb berikut; Table Mahasiswa nim* nama_mhs kelamin tmp_lahir tgl_lahir alamat Table Jenis Ujian kode_ujian* nama_ujian
Database Hasil Ujian Mahasiswa
Table Hasil Ujian nim** kode_mtk** kode_ujian** nilai
Keterangan : * Primary Key ** Foreign Key
Table Dosen kode_dosen* nama_dosen kelamin tmp_lahir tgl_lahir alamat Table Matakuliah kode_mtk* nama_mtk sks kode_dosen**
Berdasarkan skema tersebut, kita dapat menampilkan data dari table Hasil Ujian, Jenis Ujian, Mahasiswa dan table Matakuliah secara bersamaan, atau kita juga dapat menampilkan data dari table Matakuliah dan table Dosen secara bersamaan. Hal tersebut dimungkinkan karena setiap table yang dimaksud mempunyai hubungan (relasi) secara langsung (berkaitan secara logika), sebagaimana digambarkan pada skema tersebut. Adanya relasi kedua table yang biasanya ditandai oleh adanya field yang identik (baik nama, type data, ukurannya maupun maksud peruntukannya), memungkinkan kita untuk menampilkan data dari keduanya. Sebaliknya, bila tidak ada relasi secara langsung, maka kita tidak dapat menampilkannya. Misalnya antara table Mahasiswa dengan table Dosen Modul Praktikum Sistem Basis Data ..............................................................................
61
STMIK PPKIA Pradnya Paramita atau antara table Jenis Ujian dengan table Matakuliah. Untuk lebih jelasnya cobalah contoh berikut; mysql>SELECT matakuliah.kode_mtk, matakuliah.nama_mtk, ->matakuliah.sks, dosen.nama_dosen ->FROM matakuliah, dosen ->WHERE dosen.kode_dosen= matakuliah.kode_dosen; mysql>SELECT matakuliah.kode_mtk, matakuliah.nama_mtk, ->matakuliah.sks, dosen.nama_dosen ->FROM matakuliah, dosen ->WHERE (dosen.kode_dosen=matakuliah.kode_dosen) ->AND (dosen.nama_dosen LIKE “in%”); Perintah pertama hanya terdapat 1 syarat, yaitu syarat relasi; WHERE dosen.kode_dosen=matakuliah.kode_dosen; Namun pada perintah kedua sudah terdapat 2 syarat, yaitu syarat relasi dan syarat penyaringan (filter) data, yaitu hanya untuk dosen yang namanya berawalan “in”; WHERE (dosen.kode_dosen=matakuliah.kode_dosen) AND (dosen.nama_dosen LIKE “in%”); pada syarat kedua inilah, kita dapat mengkombinasikan berbagai operator yang ada sebagai syarat penyaringan (filtering) data, sehingga data yang tampil sesuai dengan yang kita harapkan. Bagaimana bila yang direlasikan lebih dari dua table?, misalnya akan menampilkan data dari table Hasil Ujian, Jenis Ujian, Mahasiswa, Matakuliah dan table Dosen sekaligus. Hal yang perlu diperhatikan dalam merelasikan dua table atau lebih, adalah bagaimana kita menentukan table acuan, yang bertindak sebagai penyedia data dasar acuan bagi table yang berelasi. Biasanya yang menjadi table acuan adalah table transaksional yaitu tabel yang mengandung kunci tamu (foreign key) dan bukan table master yang hanya mengandung kunci utama (primary key). Kalau kita lihat skema database ujimhsdb, maka yang paling layak menjadi table acuan adalah table hsl_ujian. 2.
Menggunakan Nama Alias pada Kolom dan Tabel Nama alias dapat digunakan sebagai pengganti judul kolom atau pengganti nama
table. Penggantian judul kolom mapun nama table, biasanya bertujuan untuk memperjelas ataupun memperpendek penyebutan judul kolom maupun nama table. Contoh berikut menunjukkan penggunaan nama alias pada judul kolom dan nama tabel; Modul Praktikum Sistem Basis Data ..............................................................................
62
STMIK PPKIA Pradnya Paramita mysql>SELECT matakuliah.kode_mtk AS “Kode Matakuliah”, ->matakuliah.nama_mtk AS “Nama Matakuliah”, ->matakuliah.sks AS “SKS”, dosen.nama_dosen AS “Nama Dosen” ->FROM matakuliah, dosen ->WHERE dosen.kode_dosen = matakuliah.kode_dosen; mysql>SELECT mtk.kode_mtk, mtk.nama_mtk, ->mtk.sks, dsn.nama_dosen ->FROM matakuliah AS mtk, dosen AS dsn ->WHERE dsn.kode_dosen = mtk.kode_dosen; 3. Menggunakan perintah GROUP BY dan HAVING Perintah GROUP BY digunakan untuk mengelompokkan data berdasarkan kriterian tertentu. Pengelompokan data dilakukan untuk menemukan hasil-hasil aggregasi seperti mencari total jumlah, banyaknya data dan nilai rata-rata dengan suatu kriteria. Perintah HAVING digunakan untuk melakukan penyaringan data (data filtering) terhadap data hasil pengelompokan data. Penyaringan data terhadap data hasil pengelompokan data tidak dapat dilakukan dengan perintah WHERE. Perintah WHERE walau tidak secara khusus digunakan untuk menyaring data, namun WHERE dapat digunakan sebagai alat penyortir data sebelum dilakukannya proses grouping. Sedangkan perintah HAVING memang secara khusus diperuntukkan sebagai alat penyortir data hasil Grouping
E. LANGKAH-LANGKAH PRAKTIKUM Guna membantu pemahaman kita dalam menggunakan nama alias, pengelompokan data dengan perintah GROUP BY dan penyaringan data hasil pengelompokan data dengan perintah HAVING, lakukan beberapa perintah query berikut ini; a. Menyatakan relasi antar tabel dengan WHERE mysql>SELECT matakuliah.kode_mtk, matakuliah.nama_mtk, ->matakuliah.sks, dosen.nama_dosen ->FROM matakuliah, dosen ->WHERE dosen.kode_dosen= matakuliah.kode_dosen; mysql>SELECT matakuliah.kode_mtk, matakuliah.nama_mtk, ->matakuliah.sks, dosen.nama_dosen ->FROM matakuliah, dosen ->WHERE (dosen.kode_dosen=matakuliah.kode_dosen) ->AND (dosen.nama_dosen LIKE “in%”); Modul Praktikum Sistem Basis Data ..............................................................................
63
STMIK PPKIA Pradnya Paramita mysql>SELECT hsl_ujian.nim, mahasiswa.nama_mhs, matakuliah.nama_mtk, ->matakuliah.sks, dosen.nama_dosen, ujian.nama_ujian, hsl_ujian.nilai ->FROM hsl_ujian, mahasiswa, matakuliah, dosen, ujian ->WHERE (mahasiswa.nim=hsl_ujian.nim) ->AND (matakuliah.kode_mtk=hsl_ujian.kode_mtk) ->AND (ujian.kode_ujian=hsl_ujian.kode_ujian) ->AND (dosen.kode_doesn=matakuliah.kode_dosen); mysql>SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, ->U.nama_ujian, H. nilai ->FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, ->ujian AS U ->WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND ->(K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen) AND ->(H.nilai BETWEEN 70 AND 90); b. Menggunakan nama alias pada judul kolom dan nama tabel dengan AS mysql>SELECT mtk.kode_mtk AS “Kode Matakuliah”, ->mtk.nama_mtk AS “Nama Matakuliah”, ->mtk.sks AS “SKS”, dsn.nama_dosen AS “Nama Dosen” ->FROM matakuliah AS mtk, dosen AS dsn ->WHERE dsn.kode_dosen= mtk.kode_dosen; mysql>SELECT nim, nama_mhs, kelamin, tmp_lahir, tgl_lahir, ->CURRENT_DATE AS tgl_sekarang, ->(YEAR(CURRENT_DATE)-YEAR(tgl_lahir)) AS usia ->FROM mahasiswa; c. Mengelompokkan data dengan GROUP BY dan menyaring data hasil pengelompokan dengan HAVING mysql>SELECT MONTH(tgl_lahir) AS bulan_ke, ->MONTHNAME(tgl_lahir) AS nama_bulan, ->COUNT(*) AS jumlah_lahir ->FROM mahasiswa ->GROUP BY nama_bulan ->HAVING jumlah_lahir>1 ->ORDER BY bulan_ke; mysql>SELECT MONTH(tgl_lahir) AS bulan_ke, ->MONTHNAME(tgl_lahir) AS nama_bulan, ->COUNT(*) AS jumlah_lahir ->WHERE kelamin=”L” ->FROM mahasiswa ->GROUP BY nama_bulan ->HAVING jumlah_lahir>1 ->ORDER BY bulan_ke; Modul Praktikum Sistem Basis Data ..............................................................................
64
STMIK PPKIA Pradnya Paramita F. TUGAS 1. Tampilkan data Dosen (Usia dan Banyak Dosen) untuk setiap Usia yang Ganjil, urut Usia secara Descending 2. Tampilkan data Dosen (Bulan Lahir dan Banyak Dosen) untuk setiap Bulan Kelahiran yang Genap, urut Bulan Lahir secara Ascending 3. Tampilkan data Hasil Ujian (Kode Ujian, Banyak Mahasiswa dan Jumlah Nilai) dan data Jenis Ujian (Nama Ujian) untuk setiap Jenis Ujian yang Jumlah Nilainya antara 1200 hingga 1300, urut Jumlah Nilai secara Descending 4. Tampilkan data Hasil Ujian (Kode Ujian, Banyak Mahasiswa dan Jumlah Nilai) dan data Jenis Ujian (Nama Ujian) untuk setiap Jenis Ujian yang Nilainya diatas 70 dan Jumlah Nilainya antara 300 hingga 500, urut Jumlah Nilai secara Ascending 5. Tampilkan data Hasil Ujian (Kode Ujian, Banyak Mahasiswa dan Jumlah Nilai) dan data Jenis Ujian (Nama Ujian) untuk setiap Jenis Ujian yang Nilainya antara 70 hingga 95, Jumlah Nilainya antara 300 hingga 500 dan Banyak Mahasiswanya yang Genap, urut Jumlah Nilai secara Descending 6. Tampilkan data Jenis Kelamin dan Total Mahasiswa untuk setiap Jenis Kelamin dari table Mahasiswa, urut Total Mahasiswa secara Ascending 7. Tampilkan data Tempat Lahir dan Total Mahasiswa untuk setiap Tempat Kelahiran dari table Mahasiswa, urut Total Mahasiswa secara Descending 8. Tampilkan data Tahun Lahir dan Total Mahasiswa untuk setiap Tahun Kelahiran dari table Mahasiswa, urut Tahun Lahir secara Ascending 9. Tampilkan data Kode Ujian, Total Mahasiswa untuk setiap Kode Ujian dari table Hasil Ujian, urut Kode Ujian secara Ascending 10. Tampilkan data Kode Ujian dan Total Mahasiswa untuk setiap Kode Ujian dari table Hasil Ujian, urut Kode Ujian secara Ascending 11. Tampilkan data Kode Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian, urut Jumlah Nilai secara Descending 12. Tampilkan data Kode Ujian, Jenis Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian dan Jenis Ujian, urut Jumlah Nilai secara Descending
Modul Praktikum Sistem Basis Data ..............................................................................
65
STMIK PPKIA Pradnya Paramita 13. Tampilkan data Kode Ujian, Jenis Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian dan Jenis Ujian yang Nilai Ujiannya diatas 70, urut Jumlah Nilai secara Descending 14. Tampilkan data Kode Ujian, Jenis Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian dan Jenis Ujian yang Nilai Ujiannya diatas 70 dan Total Mahiswanya diatas 3, urut Jumlah Nilai secara Descending 15. Tampilkan data Kode Ujian, Jenis Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian dan Jenis Ujian yang Nilai Ujiannya antara 70 hingga 95 dan Total Mahasiswanya antara 3 hingga 7, urut Jumlah Nilai secara Descending
Modul Praktikum Sistem Basis Data ..............................................................................
66
STMIK PPKIA Pradnya Paramita
PRAKTIKUM VII SUB QUERY DAN VIEW A. LATAR BELAKANG Sumber data dalam melakukan query data tidak hanya bersal dari objek Tabel semata, namun terkadang untuk keperluan dan alasan tertentu, sumber data dari query data dapat berasal dari sebuah query juga. Query yang digunakan sebagai sumber data sebuah query disebut Sub Query. Sub Query dapat digunakan langsung sebagai sumber data dari sebuah perintah query data, atau didefinisikan menjadi sebuah objek View. Objek View merupakan meta Tabel yang berisikan definisi untuk menghasilkan sejumlah record (record set) yang terdiri dari sejumlah kolom/field yang berasal dari satu atau lebih objek Tabel. Guna membantu pemahaman kita agar dapat membuat dan menggunakan Sub Query dan objek View, diperlukan tindakan uji coba dalam praktikum berikut ini. B. TUJUAN Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat membangun sebuah Sub Query dan menyatakannya sebagai objek View 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; 4. 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) 5. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur 6. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser
Modul Praktikum Sistem Basis Data ..............................................................................
67
STMIK PPKIA Pradnya Paramita D. TEORI DASAR 1. Sub Query Sub query merupakan query yang digunakan dalam sebuah query untuk keperluan tertentu. Sub query biasanya digunakan sebagai sumber data berupa sebuah kumpulan rekord (record set) dari query utamanya, dan bukan menjadi hasil akhir dari perintah query secara keseluruhan. Secara logika, kumpulan rekord (record set) hasil dari sub query menyerupai sebuah tabel utuh yang berdiri sendiri namun tidak secara fisik (tabel maya). Hasil dari sebuah sub query yang menggunakan perintah SELECT dengan berbagai pilihan field yang berasal satu atau banyak tabel, biasanya diletakkan setelah klausa FROM dari bagian query utamanya. Hal tersebut menunjukkan bahwa hasil dari sub query menjadi sumber data bagi query utamanya. Sub query bisa tercipta dalam beberapa level kedalaman sub query. Artinya dalam sebuah sub query bisa saja terdapat sub query di dalamnya (sub sub query). Level kedalaman sub query bisa saja tercipta seiring dengan kompleksitas syarat data yang ingin dihasilkan. 2. Objek View Objek view merupakan tabel virtual (maya) berisi sekumpulan rekord (record set) yang berasal dari satu atau banyak tabel. View sebenarnya adalah sebuah definisi dalam bahasa SQL untuk menghasilkan/melihat sekumpulan rekord (record set) yang berasal dari satu atau banyak tabel. Definisi tersebuat selanjutnya diberi nama atau pelabel. Jika nama atau label tersebut dipanggil maka mesin server database akan menghasilkan sebuah tabel baru yang merupakan tabel maya. Dengan adanya objek view, maka dari sebuah tabel atau gabungan beberapa tabel akan dapat menghasilkan berbagai macam bentuk informasi sesuai dengan format yang dinginkan. Setiap view yang tercipta, akan dipandang sebagai sebuah tabel tersendiri (walaupun sebenarnya tabel maya). Sehingga hanya dengan cara yang sederhana yaitu dengan memanggil view-nya (SELECT * FROM ), sebenarnya kita telah melakukan akses data dari satu atau lebih tabel yang terdefinisi dalam view yang dimaksud. Sintak dasar membuat objek view adalah dengan perintah SQL sebagai berikut; CREATE [OR REPLACE] VIEW AS <select_statement>;
Modul Praktikum Sistem Basis Data ..............................................................................
68
STMIK PPKIA Pradnya Paramita Perintah CREATE digunakan apabila kita akan membuat sebuah objek view baru, sedangkan tambahan perintah OR REPLACE (pilihan/optional), digunakan jika kita akan membuat view baru dan/atau sekaligus merubah definisi dari view yang dimaksud. Merubah definisi sebuah objek view dapat juga dilakukan dengan memberikan perintah SQL sebagai berikut; ALTER VIEW AS <select_statement>; Menghapus keberadaan sebuah objek view dapat dilakukan dengan perintah SQL sebagai berikut; DROP VIEW [IF EXISTS] ; Penggunaan perintah tambahan IF EXISTS dalam menghapus sebuah objek view, jika view yang dimaksud tidak ada di dalam database, maka perintah penghapusan tidak dianggap salah. E. LANGKAH-LANGKAH PRAKTIKUM Guna membantu pemahaman kita dalam menggunakan nama alias, pengelompokan data dengan perintah GROUP BY dan penyaringan data hasil pengelompokan data dengan perintah HAVING, lakukan beberapa perintah query berikut ini; a. Melakukan query data dari sebuah Sub Query mysql>SELECT DSN.*, ->FROM ->( -> SELECT * -> FROM DOSEN -> WHERE nama_dosen LIKE %A% ->) AS DSN; mysql>SELECT HASIL.nim, HASIL.nama_mhs, HASIL.nama_ujian, HASIL.nilai ->FROM ->( -> SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, -> H.nilai -> FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, -> ujian AS U -> WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND -> (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen) ->) AS HASIL ->WHERE (HASIL.nilai BETWEEN 70 AND 90); b. Membuat dan menghapus objek View Modul Praktikum Sistem Basis Data ..............................................................................
69
STMIK PPKIA Pradnya Paramita mysql>CREATE VIEW view_hasil AS -> SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, H.nilai -> FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, -> WHERE (M.nim=H.nim) AND (K.kode_mtk=H.kode_mtk) -> AND (D.kode_dosen=K.kode_dosen); mysql>CREATE OR REPLACE VIEW view_hasil AS -> SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, -> H.nilai -> FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, -> ujian AS U -> WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND -> (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen); mysql>SELECT HASIL.nim, HASIL.nama_mhs, HASIL.nama_ujian, HASIL.nilai ->FROM view_hasil; ->WHERE (HASIL.nilai BETWEEN 70 AND 90); mysql>ALTER VIEW view_hasil AS -> SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, -> H.nilai -> FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, -> ujian AS U -> WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND -> (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen); mysql>DROP VIEW view_hasil; mysql>DROP VIEW IF EXISTS view_hasil; F. TUGAS 1. Tampilkan Jumlah Mahasiswa dan Usia Rata-Ratanya untuk tiap jenis kelamin, dari table Mahasiswa. Format output yang diharapkan Kelamin Laki-Laki Perempuan
Jumlah ….. …..
Usia_Rata2 …….. ……..
2. Tampilkan Nim, Nama Mahasiswa, Kode Matakuliah, Nama Matakuliah dan Nilai dari Table Hsl_Ujian, Mahasiswa dan Matakuliah. Data diurutkan berdasarkan Nim
Modul Praktikum Sistem Basis Data ..............................................................................
70
STMIK PPKIA Pradnya Paramita 3. Tampilkan Nim, Nama Mahasiswa, Kode Matakuliah, Nama Matakuliah Nilai Uas, Grade (Nilai Abjad), Bobot, Total (Bobot X Sks) dari Table Hsl_Ujian, Mahasiswa dan Matakuliah. Data diurutkan berdasarkan Nim. Format output yang diharapkan Nim ….. …..
Nama ….. …..
Nilai Uas …….. ……..
Grade … …
Bobot …. ….
Total ….. …..
Table Grade Nilai & Pembobotan Nilai Uas 0 – 45 46 – 50 51 – 55 56 – 65 66 – 75 76 – 80 80 – 100
Grade E D C C+ B B+ A
Bobot 0 1 2 2,5 3 3,5 4
4. Sama dengan soal no. 3, namun data yang ditampilkan hanya Mahasiswa yang memiliki Nilai C dan C+. 5. Tampilkan Nim, Nama Mahasiswa, Kode Matakuliah, Nama Matakuliah, Sks, Nama Dosen, Nilai Dan Total Nilai (Sks X Nilai) Hanya Untuk Nilai Uts Saja, Dari Table Hsl_Ujian, Mahasiswa, Dosen, Ujian Dan Matakuliah, Yang Nilainya Dibawah RataRata Kelas.
Modul Praktikum Sistem Basis Data ..............................................................................
71
STMIK PPKIA Pradnya Paramita
PRAKTIKUM VIII MANAJEMEN SUMBER DAYA DATA A. LATAR BELAKANG MySQL sebagai sebuah perangkat lunak aplikasi server database, dapat memiliki sumber daya data yang sangat berharga. Sumber daya data tersebut perlu dipelihara keberadaannya, agar dapat digunakan secara optimal. Tindakan pemeliharaan sumber daya data, dapat dilakukan dengan jalan melakukan Backup dan Restoring Data, serta Replikasi/duplikasi server database secara real-time sebagai bentuk upaya menghindari kehilangan sumber daya data yang sangat berharga. Guna membantu tercapainya kompetensi mahasiswa, khususnya dalam melakukan Backup dan Restoring Data, serta Replikasi/duplikasi server database secara real-time, diperlukan tindakan uji coba dalam praktikum berikut ini.
B. TUJUAN Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat melakukan Backup dan Restoring Data, serta Replikasi/duplikasi server database secara real-time.
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 dan MySQL Administrator
Modul Praktikum Sistem Basis Data ..............................................................................
72
STMIK PPKIA Pradnya Paramita D. TEORI DASAR Sebagai penyedia sumber daya data, server database MySQL telah menyediakan perangkat/kakas (tools) untuk mengatur dan mengelola data tersimpan. Pengaturan dan pengelolaan data yang tersimpan di server, ditujukan untuk menjamin ketersediaan data dan keberlangsungannya.
Sejak
MySQL
versi
5.0
diluncurkan,
pengembang
telah
melengkapinya dengan sebuah perangkat lunak yang kompak (terintegrasi), untuk melakukan manajemen sumber daya data. Perangkat lunak (software) yang dimaksud adalah MySQL GUI Tools, yang berisi program-program berikut;
MySQL Administration
MySQL Migration Toolkit
MySQL Query Browser
MySQL System Tray Monitor
MySQL Workbench
Pada pembahasan selanjutnya, akan memanfaatkan program MySQL Administration. Pada program tersebut terdapat kakas (tools) untuk administrasi user/pengguna, proses backup dan restoring data, proses start dan stop service server MySQL, serta proses replikasi server (duplikasi server). Untuk menjalankan program MySQL Administration, pilih urutan menu Start Programs MySQL MySQL Administration. Di layar akan tampil kotak dialog berikut;
Gambar 1: Kotak Dialog Login Ke Server Melalui MySQL Administrator Modul Praktikum Sistem Basis Data ..............................................................................
73
STMIK PPKIA Pradnya Paramita 1. Server Information Pada modul ini terdapat empat bagian informasi mengenai kondisi mesin server dan koneksinya.
Gambar 2: Modul Server Information Pada MySQL Administrator Bagian pertama adalah informasi mengenai status server, sedang aktif/running atau tidak. Bagian kedua, merupakan informasi mengenai user yang menjalankan program MySQL Administrator ini. Informasi yang ditampilkan adalah Username, Hostname atau nama host/mesin yang digunakan untuk koneksi ke server dan informasi mengenai Port yang digunakan. Bagian ketiga, menampilkan informasi mengenai versi server MySQL yang digunakan, Network Name dan alamat IP. Pada gambar di atas menunjukkan alamat IP : 127.0.0.1, dimana alamat IP tersebut menunjukkan bahwa letak server MySQL dan mesin yang digunakan user untuk mengakses server MySQL adalah sama, sehingga Hostname dan Network Name disebut localhost, dan alamat IP yang dikenal adalah 127.0.0.1. Bagian terakhir menampilkan informasi mesin Client. Informasi yang ditampilkan adalah versi
Modul Praktikum Sistem Basis Data ..............................................................................
74
STMIK PPKIA Pradnya Paramita MySQL Client, Network Name, alamat IP, system operasi yang digunakan serta spesifikasi hardware (tipe CPU dan kapasitas RAM) yang digunakan/terpasang.
2. Service Control Modul program untuk mengatur konfigurasi dan servis server database MySQL.
Gambar 3: Modul Servis Control Pada MySQL Administrator 3. User Administration Modul ini dapat digunakan untuk membuat atau menghapus user serta untuk mengatur hak aksesnya. Untuk membuat user baru tekan tombol Add new user, lalu isikan detil data dari user baru yang dimaksud. Data tersebut meliputi MySQL User untuk login name, Password, Confirm Password. Sebagai data tambahan, dapat pula disikan informasi mengenai Full Name, Description, Email dan Contact Information. Setelah mengisikan data
Modul Praktikum Sistem Basis Data ..............................................................................
75
STMIK PPKIA Pradnya Paramita yang dimaksud, dan telah yakin kebenarannya, tekanlah tombol Apply changes untuk mengakhiri proses pendaftaran user baru. Untuk merubah password atau informasi lainnya dari seorang user yang telah terdaftar, cukup dengan memilih nama user yang dikasud pada kolom Users Accounts. Isikan Password baru dan Confirm Password-nya serta informasi lainnya. Setelah yakin kebenarannya, tekanlah tombol Apply changes untuk mengakhiri proses.
Gambar 4: Bagian User Information Pada Modul User Administration Pada MySQL Administrator Jika suatu saat keberadaan seorang user akan dihapus karena suatu hal, langkah yang dapat dilakukan adalah dengan cara pilih nama user yang dikasud pada kolom Users Accounts. Click kanan dan pilih menu Delete user.
Modul Praktikum Sistem Basis Data ..............................................................................
76
STMIK PPKIA Pradnya Paramita
Gambar 5: Pop-Up Menu untuk Menghapus User Pada User Accounts Bagaian/tabs Schema Privileges, digunakan untuk mengatur hak akses user bersangkutan terhadap satu atau beberapa database tertentu. Hak akses yang dimaksud meliputi hak; Select, Insert, Update, Create, Drop, Grant, Index, Alter dan sebagainya, seperti terlihat pada gambar 31. Untuk memberikan hak akses yang dimaksud, terlebih dahulu pilih/click user pada bagian Users Accounts, lalu pilih/click database pada bagian Schemata. Pada saat sebuah database/schema terpilih, secara otomatis pada bagian Available Privileges akan tampil semua hak akses yang dapat diberikan pada seorang user terhadap database yang dimaksud. Tambahkan atau hilangkan satu atau beberapa hak akses, dengan menekan keempat tombol panah yang terdapat diantara bagian Assigned Privileges dan Available Privileges. Untuk mengakhiri proses pilih/click tombol Apply changes. Pengaturan hak akses user dengan menggunakan fasilitas Schema Privileges dalam modul User Administration ini, hanya dapat digunakan untuk pengaturan hak akses pada level database/schema dan tidak pada level objek di bawahnya (level table, view dsb.), oleh karena itu fasilitas ini dinamakan Schema Privileges. Guna mengabaikan semua perubahan yang telah dilakukan terhadap detil informasi ataupun hak akses seorang user, pilih/click tombol Discard changes.
Modul Praktikum Sistem Basis Data ..............................................................................
77
STMIK PPKIA Pradnya Paramita
Gambar 6: Bagian Schema Privileges dari Modul User Administration Pada MySQL Administrator 4. Backup Data Fasilitas ini dapat digunakan untuk melakukan proses backup data. Hasil dari proses backup data dengan menggunakan fasilitas ini berupa file text, yang selanjutnya dapat dipanggil ulang dengan menggunakan fasilitas restore data. Langkah-langkah untuk proses backup data adalah dengan cara, pilih/click tombol New Project atau dengan memilih/click salah satu berkas proyek pada bagian Backup Projects. Isikan nama proyek pada bagian Project Name untuk maksud penyimpanan berkas proyek di bagian Backup Projects. Tombol Save Project, dapat digunakan untuk menyimpan berkas proyek, yang akan ditampilkan di bagian Backup Projects.
Modul Praktikum Sistem Basis Data ..............................................................................
78
STMIK PPKIA Pradnya Paramita
Gambar 7: Fasilitas Backup Data Pada MySQL Administrator Proses backup data akan dilakukan untuk beberapa database dan objek-objek dibawahnya yang terpilih pada bagian Backup Content. Tambahkan atau hilangkan satu atau beberapa database yang diinginkan, dari/ke bagian Backup Content. Untuk mengeksekusi proses backup data, pilih/click tombol Execute Backup Now dan tentukan nama file backup seperti pada gambar berikut.
Modul Praktikum Sistem Basis Data ..............................................................................
79
STMIK PPKIA Pradnya Paramita
Gambar 8: Proses Backup Data Pada MySQL Administrator 5. Memanggil Ulang (Restore) Data Fasilitas ini dapat digunakan untuk memanggil/meng-copy ulang data tersimpan dalam format text hasil proses bakup data, ke server database MySQL. Proses restoring data ini, dapat dilakukan dengan cara;
Aktifkan/pilih fasilitas Restore pada program MySQL Administrator
Pilih/click tombol Open Backup File
Tentukan file backup yang dimaksud pada kotak dialog Open
Pilih/click tombol Open
Pilih/click tombol Start Restore
Modul Praktikum Sistem Basis Data ..............................................................................
80
STMIK PPKIA Pradnya Paramita
Gambar 9: Fasilitas Restore Data Pada MySQL Administrator
Gambar 10: Proses Restore Data Pada MySQL Administrator Modul Praktikum Sistem Basis Data ..............................................................................
81
STMIK PPKIA Pradnya Paramita 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 Simpan dan tutup file tersebut
Nomer/Id mesin Master Server
Modul Praktikum Sistem Basis Data ..............................................................................
82
STMIK PPKIA Pradnya Paramita
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‟ IDENTIFIED BY „12345‟;
atau nomer IP mesin Slave Server 12345 merupakan password dari user
replikator
Jalankan perintah berikut flush privileges;
Modul Praktikum Sistem Basis Data ..............................................................................
83
STMIK PPKIA Pradnya Paramita 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.
Modul Praktikum Sistem Basis Data ..............................................................................
84
STMIK PPKIA Pradnya Paramita
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 master-host=192.168.0.1 master-port=3306 master-user=replikator master-password=12345 master-connect-retry=60 replicate-do-db=test relay-log=mysql-bin.0000xx Server relay-log-index=mysql-bin.index
Nomer/Id mesin Slave Server sesuaikan dengan IP mesin Master Server sesuaikan dengan nomer Port yang digunakan nama user pemilik hak replication slave password user pemilik hak replication slave nama database/schema yang akan direplikasi nama log file yang tercatat di mesin Master
Modul Praktikum Sistem Basis Data ..............................................................................
85
STMIK PPKIA Pradnya Paramita
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’, master_user=’replikator’, master_password=’12345’, slave master_log_file=’mysql-bin.0000xx’, Server master_log_pos=xxx;
sesuaikan dengan IP mesin Master Server nama user pemilik hak replication slave password user pemilik hak replication log file yang tercatat di mesin Master 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.
Modul Praktikum Sistem Basis Data ..............................................................................
86