Upload
duongkhuong
View
226
Download
1
Embed Size (px)
Citation preview
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 1
PRAKTIKUM I
MENGGUNAKAN SOFTWARE DATABASE MySQL
A. LATAR BELAKANG
Banyak pilihan software yang dapat digunakan untuk belajar manajemen sistem
basisdata, khususnya untuk membangun desain database secara konsep dan
diimplementasikan secara fisik ke sebuah server database. Kecendrungan yang terjadi di
masyarakat saat ini adalah bahwa sebuah software manajemen sistem basisdata tidak hanya
hadir sebagai perangkat lunak untuk melakukan menajemen data (Create, Read, Update dan
Delete) saja, namun harus terintegrasi juga dengan perangkat lunak untuk mendesain
database secara konsep yang kemudian dapat digenerate secara fisik ke sebuah server
database.
Software MySQL versi 5.0.20 sebagai software manajemen sistem basisdata telah
hadir dengan berbagai kelebihannya, diantaranya adalah (a) lintas platform; (b) relatif tanpa
biaya; (c) memiliki dukungan replikasi data secara real time; (d) mampu menangani banyak
data dengan kecepatan tinggi (kapabilitas tinggi); (e) mudah diperoleh dan digunakan serta
(f) dilengkapi dengan perangkat lunak pendukung untuk desain database secara konsep dan
untuk keperluan pengoperasian dan administrasi server database MySQL. Dengan
demikian pemilihan software MySQL sangat relevan digunakan dan dikuasai oleh
mahasiswa, khususnya sebagai perangkat lunak untuk belajar manajemen sistem basisdata.
B. TUJUAN
Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah
mahasiswa dapat;
1. Melakukan instalasi software database MySQL versi 5.0.20 dan software MySQL GUI
Tools versi 5.0 secara mandiri dengan baik dan benar
2. Melakukan troubleshooting dan testing koneksi pada komputer Server dan Client guna
memastikan bahwa Server database MySQL telah aktif dan dapat digunakan secara
bersama-sama dalam lingkup jaringan.
3. Melakukan sesi login ke server MySQL dengan beberapa cara
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 2
C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN
Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa
sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan
software yang dibutuhkan sebelum melakukan praktikum ini adalah;
1. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang
digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan
menggunakan kabel maupun dengan jaringan tanpa kabel (nirkabel)
2. LCD viewer sebagai media presentasi instruktur
3. Software berupa file MySQL-5.0.20.EXE untuk instalasi server database MySQL versi
5.0.20, dan File mysql-gui-tools-5.0-r8-win32.msi, untuk instalasi software pendukung
(tools) pengoperasian dan administrasi server database MySQL,
D. TEORI DASAR
MySQL merupakan salah satu sistem manajemen database relasi (relational data
system) yang bersifat terbuka (open source) dan dikembangkan pertama kalinya oleh
Michael Wonty, David Axmark, dan Allan Larson pada tahun 1995, yang kemudian
mendirikan perusahaan bernama MySQL-AB di Swedia. Tujuan awal dibuatnya program
MySQL, adalah untuk mengembangkan aplikasi web yang akan digunakan oleh salah satu
klien MySQL-AB. Memang pada saat itu, MySOL-AB adalah sebuah perusahaan
konsultan database dan pengembang software.
Pada awalnya MySQL hanya berjalan di atas platform sistem operasi UNIX, bahkan
hampir semua distro UNIX yang beredar saat ini telah memasukkan program MySQL
sebagai database management system standartnya. Saat ini MySQL dapat pula berjalan di
banyak sistem operasi, seperti Microsoft Windows, Solaris, FreeBSD, Mac OS X, HP UX,
IBM AIX, SCO Unix dan sebagainya. Database MySQL memiliki kinerja, kecepatan
proses, dan ketangguhan yang tidak kalah dibanding aplikasi database management system
besar lainnya yang kornersil, seperti ORACLE, Sybase, Microsoft SQL Server, Unify, dan
sebagainya. Dengan Open Source, MySOL berkembang menjadi salah satu sistem
manajemen database relasi terkemuka yang diakui secara internasional.
Beberapa pertimbangan mengapa memilih MySQL sebagai program aplikasi
database management system, diantaranya adalah :
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 3
Kecepatan Berdasarkan hasil pengujian, MySQL memiliki kecepatan paling baik
dibanding database server lainnya. Hasil pengujian ini dapat kita lihat dalam
http://www.mysql. Conirinfomiation/bencmarks.html. Kemudian, dengan adanya fitur
tambahan Query Caching pada MySQL 4.0, kinerja query secara umum naik rata-rata
200% dari kinerja biasanya.
Mudah digunakan. Perintah-perintah dan aturan-aturan pada MySQL dan proses
instalasinya relatif mudah digunakan.
Open Source. Dengan konsep ini siapa pun dapat berpartisipasi untuk
mengernbangkan MySQL dan hasil pengembangan itu dirilis untuk konsumsi umurn
atau untuk kornunitas Open Source.
Kapabilitas. MySOL telah diujicobakan untuk mengelola database dengan jumlah
tabel 60.000 dan jumlah recordnya mencapai 5.000.000.000, dimana hasil uji coba
tersebut berjalan dengan baik. Selain itu MySQL mendukung penggunaan index
hingga 32 buah index per-tabelnya, sedangkan setiap indexnya terdiri dari 1 hingga
16 kolom kriteria.
Replikasi data. Dengan adanya fasilitas replikasi data ini, memungkinkan untuk
dapat mempunyai beberapa database bayangan yang berasal dari satu database induk.
Biaya rendah (relatif gratis). Dapat menggunakan MySQL tanpa harus memikirkan
biaya lisensi selama mengikuti konsep Open Source/GNU Public Licences.
Konektifitas dan keamanan. MySQL mendukung dan menerapkan sistem keamanan
dan izin akses tingkat lanjut (advanced permissions and secury system), termasuk
dukungan pengamanan dengan cara pengacakan lapisan data (SSL transport layer
encryption).
Lintas platform sistem operasi. MySQL dapat dijalankan pada beberapa sistem
operasi yang berbeda, seperti Linux, Microsoft Windows, FreeBSD, Sun Solaris,
IBM's AIX, Mac OS X, HP-UX, AIX, QNX, Novell NetWare, dan SCO OpenUnix.
Terdapat dua perangkat lunak (software) utama, untuk keperluan pengoperasian dan
administrasi server database MySQL. Selain software server database MySQL-nya sendiri,
pengembang juga telah menyediakan software pendukung (tools) untuk manajemen
database, user dan server yang berbasis GUI. Sejak MySQL versi 5 dirilis, software
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 4
pendukung (tools) telah terpaket dengan baik dalam satu file instalasi. Software-software
tersebut dapat di-download secara gratis di situs http://www.mysql.com.
Dua file instalasi yang dimaksud adalah MySQL-5.0.20.EXE dan file mysql-gui-
tools-5.0-r8-win32.msi. File MySQL-5.0.20.EXE adalah file instalasi untuk server
database MySQL versi 5.0.20. File mysql-gui-tools-5.0-r8-win32.msi, merupakan file
instalasi software pendukung (tools) untuk keperluan pengoperasian dan administrasi server
database MySQL, yang berisi program-program berikut;
MySQL Administration
MySQL Migration Toolkit
MySQL Query Browser
MySQL System Tray Monitor
MySQL Workbench
Untuk dapat bekerja dengan database MySQL, diperlukan 2 hal pokok, yaitu
mempunyai user login yang sah, serta sekumpulan hak akses. Pada pengoperasian pertama,
setelah instalasi server database MySQL sukses dilakukan, kita mempunyai satu user login
bernama root, dengan hak akses penuh dan merupakan level tertinggi dalam komunitas
pengguna server database MySQL. Dengan user root tersebut, kita dapat melakukan apa
saja, seperti membuat user baru beserta hak aksesnya, membuat dan menghapus objek-
objek dalam MySQL atau yang lainnya.
E. LANGKAH-LANGKAH PRAKTIKUM
1. Instalasi Server Database MySQL
Proses penyiapan server database MySQL melalui tahapan instalasi server database
MySQL, atur konfigurasi dan mengaktifkan server database MySQL dan diakhiri dengan
cek koneksi Server-Client. Proses instalasi server MySQL, dapat dilakukan dengan cara
berikut;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 5
Gambar 1: File MySQL-5.0.20.EXE Pada Windows Explorer
a. Lakukan double-click atau tekan Enter pada file MySQL-5.0.20.EXE
b. Click Next setelah layar Welcome to the Setup Wizard for MySQL Server 5.0 tampil
c. Pilih salah satu tipe instalasi yang diinginkan, paling mudah pilih Typical, dan
kemudian tekan Next
Gambar 2: Pilihan Setup Type
d. Tampilan berikutnya konfirmasi bahwa program MySQL akan diinstall ke dalam
direktori C:\Program Files\MySQL\MySQL Server 5.0\. Karena kita menggunakan
jenis instalasi Typical, maka direktori instalasi tidak dapat kita ubah (kecuali bila
menggunakan tipe instalasi Custom pada langkah sebelumnya). Selanjutnya click
tombol Install untuk melanjutkan,
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 6
Gambar 3: Konfirmasi Terakhir Sebelum Instalasi MySQL
e. Proses instalasi server database MySQL sedang berjalan. Tunggu beberapa saat hingga
proses instalasi selesai.
Gambar 4: Proses Instalasi Server MySQL Sedang Berlangsung
f. Kemudian disarankan untuk melanjutkan ke proses konfigurasi MySQL server
(Configure the MySQL Server now). Beri tanda terpilih pada kotak Configure the
MySQL Server now, dan lanjutkan dengan menekan tombol Finish untuk tahapan ini
(yang akan dilanjutkan dengan proses konfigurasi server MySQL)
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 7
Gambar 5: Akhir Proses Instalasi Server MySQL
g. Click Next pada form Welcome to the MySQL Server Instance Configuration Wizard,
untuk melanjutkan proses konfigurasi server MySQL
h. Untuk proses konfigurasi yang paling mudah, pilih Standart Configuration, kemudian
click Next
Gambar 6: Pilihan Proses Konfigurasi Server MySQL
i. Lakukan pilihan terhadap Install As Windows Service, Launch the MySQL Server
automatically dan Include Bin Directory in Windows PATH seperti pada gambar 9,
kemudian click Next.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 8
Gambar 7: Pilihan Konfigurasi Server MySQL untuk Keperluan Sistem Windows
Gambar 8: Seting untuk Keperluan Keamanan
j. Tampilan berikutnya, mengenai sistem keamanan server MySQL. Sebaiknya
memberikan password khusus sebagai root, dan tidak memberikan peluang kepada
orang lain untuk memasuki server MySQL tanpa password. Maka aktifkan pilihan
Modify Security Setting dan masukkan password root dengan seksama. Sebelumnya,
matikan pilihan Create An Anonymous Account, dengan demikian tidak
sembarangan orang dapat masuk menggunakan MySQL server. Satu hal lagi,
disarankan mematikan pilihan Enable Root access from remote machines, ini untuk
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 9
mencegah celah yang bisa digunakan oleh orang yang tidak bertanggungjawab masuk
ke dalam server MySQL. Lanjutkan dengan menekan tombol Next.
k. Lakukan eksekusi konfigurasi dan pengaktifan server MySQL (start service MySQL),
dengan cara click Execute.
Gambar 9: Konfirmasi Terakhir Sebelum Mengeksekusi Konfigurasi
l. Bila tidak ada kendala apapun, maka selesailah keseluruhan proses instalasi dan setting
pada program MySQL 5.0.x. Click Finish untuk menuntaskan proses ini.
Gambar 10: Kondisi Proses Konfigurasi Sukses Dieksekusi
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 10
m. Cek service MySQL dengan cara click menu Start Settings Control Panel
double click pada Administrative Tools double click pada Services. Jika status
service dari MySQL adalah Started, maka server MySQL telah terinstal dan
running/aktif di sistem.
Gambar 11: Service Status Server MySQL di Sistem Operasi Windows
2. Instalasi Software MySQL GUI Tools
a. Lakukan double-click atau tekan Enter pada file mysql-gui-tools-5.0-r8-win32.msi
b. Click Next setelah layar Welcome to the Setup Wizard for MySQL Tools for 5.0
tampil
c. Pilih I accept the term in the license agreement, kemudian click Next.
Gambar 12: License Agreement MySQL Tools
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 11
d. Tentukan lokasi hasil instalasi dengan click Change …, kemudian click Next.
Gambar 13: Penentuan Tujuan Tempat/Folder Hasil Intalasi
e. Untuk proses instalasi yang paling mudah, pilih Complete, kemudian click Next
Gambar 14: Pilihan Tipe Instalasi
f. Pilih Install, jika sudah yakin dengan tempat tujuan hasil instalasi.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 12
Gambar 15: Konfirmasi Terakhir Proses Instalasi MySQL GUI Tools
g. Tunggu hingga proses instalasi selesai dikerjakan. Kemudian click Finish untuk
mengakhiri proses instalasi
3. Login Ke Server MySQL
Sesi login ke server database MySQL dapat dilakukan dengan beberapa cara, baik
dengan mode text maupun mode grafik (GUI). Cara pertama dapat dilakukan dengan
memilih urutan menu Start Programs MySQL MySQL Server 5.0 MySQL
Command Line Client. Dengan cara tersebut, kita akan login ke server database MySQL
dengan mode text sebagai root (user tertinggi/administrator). Password yang dimasukkan
adalah password root, kemudian tekan Enter. Jika proses autentifikasi user dan password
diterima, maka di layar akan tampil prompt/shell mysql>, seperti pada gambar berikut;
Gambar 16: Prompt/Shell MySQL
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 13
Hal tersebut menunjukkan bahwa kita sedang login ke dalam server database MySQL.
Jalan lain untuk dapat login ke server database MySQL, dapat dilakukan melalui DOS
prompt. Pilih urutan menu Start Run, pada dialog Open ketik CMD, kemudian click
OK
Gambar 17: Kotak Dialog Run Program Dalam Windows
Pindahkan direktori aktif ke direktori server MySQL, misalnya: C:\Program
File\MySQL\MySQL Server 5.0\bin. Ketik perintah MySQL –u root –h localhost –p ,
kemudian masukkan password user root. Perintah tersebut menunjukkan bahwa kita akan
login ke server database MySQL, dengan user root dan dari mesin localhost (di mesin
yang sama, tempat server MySQL berada). Parameter –p adalah untuk meminta password.
Gambar 18: Prompt/Shell MySQL
Cara ketiga adalah dengan menggunakan salah satu fasilitas pada MySQL GUI Tools,
yaitu MySQL Query Browser. Lagkah yang harus dilakukan adalah dengan memilih urutan
menu Start Programs MySQL MySQL Query Browser. Masukkan server
host, port, user name dan password yang sesuai, serta default schema yang diinginkan.
Click OK, jika proses autentifikasi user name dan password diterima, maka di layar akan
tampil form query browser sebagai berikut;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 14
Gambar 19: Kotak Dialog Koneksi ke Server Dengan MySQL Query Browser
Gambar 20: Interface MySQL Query Browser Setelah Login Ke Server MySQL
Untuk keluar/logout dari server MySQL, cukup dengan perintah quit; atau exit;
Gambar 21: Perintah Untuk Mengakhiri Sesi Login Ke Server MySQL
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 15
PRAKTIKUM II
MANAJEMEN USER (PENGGUNA) MySQL
A. LATAR BELAKANG
Tanggung jawab seorang administrator server database tidak hanya terbatas pada
mempersiapkan server database supaya dapat dioperasikan dengan baik, akan tetapi
seorang administrator juga dituntut untuk dapat membuat pengguna serta mengatur hak/izin
aksesnya.
Pengaturan hak akses pengguna tidak hanya pada tataran hak login (otentifikasi) ke
server, namun juga pengaturan hak akses sumber daya yang ada dalam server database
(otorisasi). Pengaturan hak otorisasi bagi pengguna dapat dilakukan pada level database,
objek table maupun view dan pada level kolom atau field. Penguasaan dalam hal
pengelolaan pengguna server database beserta hak aksesnya mutlak dikuasai oleh seorang
administrator server database.
B. TUJUAN
Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah
mahasiswa dapat;
1. Menjelaskan perbedaan antara hak otentifikasi dengan otorisasi bagi pengguna database
MySQL
2. Menciptakan dan menghapus pengguna database MySQL
3. Memberikan dan menghapus hak akses pada level database, objek tabel dan kolom bagi
pengguna database MySQL
C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN
Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa
sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan
software yang dibutuhkan sebelum melakukan praktikum ini adalah;
1. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang
digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan
menggunakan kabel maupun dengan jaringan tanpa kabel (nirkabel)
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 16
2. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur
3. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser dan MySQL
Administrator.
D. TEORI DASAR
Seorang user atau pengguna MySQL agar dapat memanfaatkan sumber daya data
yang tersedia, tidak hanya cukup memiliki user login dan password saja (otentifikasi).
Namun seorang user atau pengguna MySQL juga harus memiliki hak akses (otorisasi)
terhadap sebagian atau keseluruhan sumber daya data yang ada dalam sebuah server
MySQL. Seorang administrator database MySQL, dituntut untuk tidak hanya bisa
melakukan instalasi software MySQL dan memastikan server dapat bekerja dengan baik.
Lebih dari itu, kita juga harus dapat menciptakan pengguna-pengguna baru serta mengatur
hak aksesnya.
Perintah GRANT digunakan untuk membuat user baru beserta izin aksesnya.
Sedangkan perintah REVOKE digunakan untuk menghapus izin akses user. Perintah
REVOKE tidak menghapus seorang user secara permanen, namun hanya sekedar
menghapus izin akses terhadap sumber daya yang ada dalam server MySQL. Dengan kata
lain, bila seorang user telah dihapus izin aksesnya dengan perintah REVOKE, dia tetap
dapat masuk (login) ke dalam MySQL, walaupun tidak dapat berbuat apa-apa. Untuk
menghapus user secara permanen, dapat digunakan perintah DELETE.
Bentuk umum perintah GRANT:
GRANT <jenis akses> ON <nama database>
TO <nama user> IDENTIFIED BY <"password">
[WITH GRANT <pilihan akses>]
Bentuk umum perintah REVOKE:
REVOKE <jenis akses> ON <nama database> FROM <nama user>
Bentuk umum perintah DELETE:
DELETE FROM USER WHERE USER=<nama user>
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 17
E. LANGKAH-LANGKAH PRAKTIKUM
1. Menciptakan Pengguna Baru
C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p
Enter password: rootpassword
mysql>GRANT ALL PRIVILEGES ON *.* TO „sinta‟@‟localhost‟
->IDENTIFIED BY „passwordsembarang‟
->WITH GRANT OPTION;
mysql>GRANT ALL PRIVILEGES ON *.* TO „santi‟@‟%‟
->IDENTIFIED BY „passwordsembarang‟
->WITH GRANT OPTION;
mysql>GRANT ALL PRIVILEGES ON *.* TO „nasti‟
->IDENTIFIED BY „passwordsembarang‟
->WITH GRANT OPTION;
mysql>GRANT USAGE ON *.* TO „andi‟@‟localhost‟
->IDENTIFIED BY „passwordsembarang‟;
Penjelasan
Perintah pertama adalah untuk membuat user baru dengan nama sinta dengan level
akses sebagai administrator (privileges ALL), yang berarti dapat mengakses
SEMUA database yang ada di dalam server (ON *.*) selama lokasi pengakses
tersebut dilakukan pada mesin lokal (sinta@localhost). Lokasi pengakses bisa
menggunakan alamat IP (Internet Protocol Address) dan nama domain (domain
name). Perintah WITH GRANT OPTION memberikan wewenang kepada sinta
untuk dapat memberikan izin akses (GRANT) kepada user-user lainnya.
Untuk perintah kedua, akses dapat dilakukan dari mesin mana saja di seluruh dunia selama user tersebut dapat melakukan koneksi ke server MySQL (TO santi@'%').
Perintah TO santi@'%' bisa juga ditulis tanpa tanda'%', seperti pada perintah
ketiga (TO nasti)
Dengan GRANT USAGE, si andi mempunyai level akses sebagai user biasa dengan tidak memiliki izin akses apapun, tetapi dia tetap dapat login dengan user
dan password ke dalam MySQL. User seperti andi ini disebut juga Dummy
User/Blank User.
Selanjutnya perhatikan tabel user di dalam database mysql, apakah user-user yang
dibuat sudah terdaftar?. Apa yang tampil dari perintah-perintah pada latihan berikut,
a. Apa yang nampak setelah perintah berikut;
mysql>USE mysql;
mysql>SELECT user, host, password FROM user;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 18
b. Kemudian apa yang tampil setelah perintah berikut;
mysql>SELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv
->drop_priv FROM user;
c. Cabut hak akses dari user santi; apa yang terjadi?
mysql>REVOKE ALL ON *.* FROM santi@localhost
mysql>SELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv
->drop_priv FROM user;
d. Lakukan penghapusan terhadap user santi; apa yang berubah?
mysql>DELETE FROM user WHERE user=‟ santi‟;
mysql>SELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv
->drop_priv FROM user;
mysql>QUIT;
2. Penghapusan Izin Akses Pengguna
Guna memperdalam pemahaman kita dalam melakukan penghapusan izin/hak akses
terhadap pengguna (user), lakukan bebera langkah berikut;
a. Berikanlah izin akses penuh terhadap user anwar terhadap seluruh table dalam database
mydatabase;
C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p
Enter password: rootpassword
mysql>GRANT ALL PRIVILEGES ON mydatabase.* TO anwar@localhost;
b. Lakukan penghapusan hak akses SELECT dan INSERT bagi user anwar;
mysql>REVOKE SELECT, INSERT ON mydatabase.* FROM anwar@localhost;
c. Lakukan penghapusan hak akses CREATE dan DROP bagi user anwar;
mysql>REVOKE CREATE, DROP ON mydatabase.* FROM anwar@localhost;
d. Lakukan penghapusan seluruh hak akses bagi user anwar;
mysql>REVOKE ALL PRIVILEGES ON mydatabase.* FROM anwar@localhost;
3. Pemberian dan Pembatasan Izin Akses Pengguna
Beberapa perintah GRANT berikut digunakan untuk memberikan atau menghapus
izin akses pengguna, yang meliputi SELECT, INSERT, UPDATE dan DELETE terhadap
database tertentu. Lakukan perintah-perintah dalam latihan berikut;
a. Apa yang terjadi setelah perintah berikut;
C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 19
Enter password: rootpassword
mysql>CREATE DATABASE mydatabase;
mysql>GRANT SELECT, INSERT,UPDATE, DELETE ON mydatabase
->TO santi@localhost; mysql>UPDATE user SET password=password(„passwordsembarang‟)
->WHERE user=‟santi‟;
b. Lihatlah tabel hak akses user terhadap table (GRANT TABLES), dari hasil perintah
berikut, apa yang nampak?
mysql>SELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv
->FROM db WHERE user=‟santi‟;
c. Lakukan perintah berikut, apakah santi dapat membuat tabel?
mysql>QUIT;
C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u santi -h localhost -p
Enter password: passwordsembarang
mysql>USE mydatabase;
mysql>CREATE TABLE mytable1
->(noid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
->nama VARCHAR(35) NOT NULL);
d. Berikanlah hak CREATE dan DROP TABLE untuk user santi, dengan perintah
berikut;
mysql>QUIT;
C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p
Enter password: rootpassword
mysql>GRANT CREATE, DROP ON mydatabase TO santi@localhost mysql>CREATE TABLE mytable1
->(noid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
->nama VARCHAR(35) NOT NULL);
mysql>SHOW TABLES;
e. Mengapa si santi dapat melakukan penghapusan tabel dengan perintah berikut?
mysql>QUIT;
C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u santi -h localhost -p
Enter password: passwordsembarang
mysql>DROP TABLE mytable1;
mysql>SHOW TABLES;
Pemberian dan pencabutan hak akses bagi pengguna dapat juga dilakukan pada
kolom/field tertentu dalam suatu table. Latihan berikut akan menunjukkan bagaimana
MySQL mampu melakukan hal tersebut;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 20
a. Berikan hak akses sembarang database kepada user anwar dan berikan password
dengan perintah berikut;
C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u root -h localhost -p
Enter password: rootpassword
mysql>GRANT USAGE ON *.* TO anwar@localhost
->IDENTIFIED BY „passwordsembarang‟;
mysql>QUIT;
b. Buatlah table dengan nama mytable1 pada database mydatabase dengan user login
santi;
C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u santi -h localhost -p
Enter password: passwordsembarang
mysql>USE mydatabase; mysql>CREATE TABLE mytable1
->(nip INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
->nama VARCHAR(35) NOT NULL,
->tmp_lahir VARCHAR(35) NOT NULL,
->tgl_lahir DATE NULL DEFAULT “0000-00-00”,
->kelamin ENUM(„L‟,‟P‟),
->alamat VARCHAR(35) NOT NULL);
c. Apa maksud dari perintah-perintah berikut?;
mysql>GRANT
->SELECT (nip, nama, tgl_lahir, alamat),
->INSERT (nip, nama, tgl_lahir, alamat),
->ON mydatabase.mytable1
->TO anwar@localhost;
d. Apa pengaruh perintah tersebut pada GRANT TABLE?, cari tahu dengan lakukan
perintah berikut;
mysql>SELECT host, db, user, table_name, grantor
->FROM table_priv WHERE user=‟anwar‟;
e. Lihatlah hak akses yang dimiliki oleh user anwar, dengan perintah berikut;
mysql>SELECT host, db, user, table_priv, column_priv
->FROM table_priv WHERE user=‟anwar‟;
f. Tampilkan nama-nama kolom yang dapat diakses oleh user anwar, dengan perintah
berikut;
mysql>SELECT column_priv WHERE user=‟anwar‟;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 21
g. Apa saja yang dapat dilakukan oleh user anwar terhadap table mytable1 dalam
database mydatabase?, ikuti perintah-perintah berikut;
mysql>QUIT;
C:\Program Files\MySQL\MySQL Server 5.0\bin\>mysql -u anwar -h localhost -p
Enter password: passwordsembarang
mysql>USE mydatabase;
mysql>SELECT * FROM mytable1;
mysql>INSERT INTO mytable1
->VALUES („1‟, „AISYAH‟,‟MALANG‟,‟1975-8-16‟,‟P‟,‟PANJAITAN 17‟);
h. Sukseskah perintah terebut? Mengapa demikian? Bagaimana dengan perintah berikut?
mysql>SELECT * FROM mytable1;
i. Lakukan perubahan data dengan perintah UPDATE, sebagaimana perintah berikut;
mysql>UPDATE mytable1 SET nama=‟AISYAH KAMILA‟ WHERE nip=„1‟;
Apa yang terjadi? Mengapa demikian?
j. Lakukan penghapusan table mytable1, sebagaimana perintah berikut;
mysql>DELETE FROM mytable1;
Apa yang terjadi? Mengapa demikian?
Penjelasan
Kegagalan yang terjadi ketika menjalan perintah UPDATE, DELETE dan DROP,
disebabkan user anwar tidak diberi hak akses tersebut pada mytable1 dalam
database mydatabase. Untuk memberikan hak penuh bagi user anwar dapat
dilakukan dengan perintah berikut;
mysql>GRANT ALL PRIVILEGES
->ON mydatabase.mytable1
->TO anwar@localhost;
Bila akan memberikan hak penuh bagi user anwar terhadap seluruh table dalam
database mydatabase, dapat dilakukan dengan perintah berikut;
mysql>GRANT ALL PRIVILEGES
->ON mydatabase.*
->TO anwar@localhost;
Beberapa contoh di atas hanya memberikan izin mengakses MySQL secara lokal,
hanya pada komputer tempat program MySQL Server terinstall. Bagaimana kalau lokasi
komputemya berbeda? Bisakah melakukan pembatasan hanya pada komputer tertentu saja
yang dapat mengakses? Perhatikan perintah GRANT berikut;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 22
mysql>GRANT CREATE, DROP
->ON mydatabase.*
->TO anwar@localhost;
Perintah TO sebenamya terdiri dari dua bagian, yaitu nama user dan alamat lokasi
pengakses. Pada perintah TO di atas, kita memberikan izin akses kepada user anwar
dengan alamat mesin localhost. Alamat ini bisa juga kita isi dengan alamat IP (Intemet
Protocol), misalnya 127.0.0.1 atau alamat IP apa saja yang dimilik, sehingga perintah di
atas menjadi:
mysql>GRANT CREATE, DROP
->ON mydatabase.*
->TO [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. Nama User Pswd Database & Table Hak Akses
All Select Insert Update Delete Create Drop
1 Andi 11111 *.*
2 Amir 22222 ujimhsdb.dosen √ √ √ √
3 Ahmad 33333 ujimhsdb.* √
4 Anik 44444 ujimhsdb.ujian √ √ √
5 Ana 55555 *.* √
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 23
b. Rubahlah hak akses user-user berikut
No. Nama User Pswd Database & Table Hak Akses
All Select Insert Update Delete Create Drop
1 Andi 11111 *.* √ √ √
2 Amir 22222 ujimhsdb.dosen √ √
3 Ahmad 33333 ujimhsdb.* √ √ √ √ √
4 Anik 44444 ujimhsdb.ujian √ √ √ √
5 Ana 55555 *.* √ √
c. Daftarkan user-user berikut beserta hak aksesnya
No. Nama User Pswd Database & Table Hak Akses
All Select Insert Update Delete Create Drop
1 Budi AAAA *.*
2 Badu BBBB ujimhsdb.hsl_ujian √ √ √
3 Bimbim CCCC ujimhsdb.* √
4 Badrus EEEE ujimhsdb.dosen √ √
5 Bobi FFFF *.* √
d. Rubah hak akses user-user berikut
No. Nama User Pswd Database & Table Hak Akses
All Select Insert Update Delete Create Drop
1 Budi AAAA *.* √ √ √ √
2 Badu BBBB ujimhsdb.hsl_ujian √ √ √
3 Bimbim CCCC ujimhsdb.* √ √ √
4 Badrus EEEE ujimhsdb.dosen √ √ √ √
5 Bobi FFFF *.* √ √ √
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 24
PRAKTIKUM III
TIPE DATA DAN OPERATOR MySQL
A. LATAR BELAKANG
Pemahaman yang baik tentang jenis dan karakteristik tipe data dan operator yang ada,
akan sangat membantu pengguna dalam melakukan query data pada software aplikasi
server database. Tanpa pemahaman yang memadai tentang hal tersebut dapat berakibat
pada ketidakvalidan data yang dihasilkan dari sebuah perintah query.
MySQL sebagai software server database, juga mengenal berbagai macam jenis tipe
data dan operator. Masing-masing tipe data dan operator memiliki karakteristik yang
berbeda dengan lainnya. Guna membantu peningkatan pemahaman mahasiswa dalam
menggunakan berbagai macam tipe data dan operator yang ada dalam MySQL, diperlukan
tindakan uji coba dalam praktikum berikut ini.
B. TUJUAN
Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah
mahasiswa dapat menjelaskan dan menggunakan berbagai macam tipe data dan operator
MySQL dalam query data dengan baik.
C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN
Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa
sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan
software yang dibutuhkan sebelum melakukan praktikum ini adalah;
1. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang
digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan
menggunakan kabel maupun dengan jaringan tanpa kabel (nirkabel)
2. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur
3. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 25
D. TEORI DASAR
1. Tipe Data Dalam MySQL
Secara umum jenis atau tipe data yang dikenal dalam MySQL dibagi menjadi 4 jenis,
yaitu:
Numeric Values, yaitu angka atau bilangan.
String/Character Values, yaitu teks atau karakter.
Date and Time Values, yaitu tanggal dan waktu.
NULL
Numeric Values, adalah angka atau bilangan seperti 10; 123; 100.50; -10; 1.2E+17;
2.7e-11; dan sebagainya. Jenis data bilangan dibagi lagi menjadi dua, yaitu Bilangan Bulat
(integer) dan Bilangan Pecahan (Floating point). Kedua jenis bilangan ini dapat bernilai
positif (+) dan juga negatif (-). Jika bilangan tersebut menggunakan tanda (+) atau (-), maka
disebut SIGNED. Sebaliknya, bila tanpa tanda apapun disebut UNSIGNED. Karena tanda
(+) dapat diabaikan penulisannya, maka pada bilangan yang bernilai positif disebut juga
unsigned.
Character Values, adalah semua karakter (atau teks) yang penulisannya diapit oleh
tanda kutip, baik kutip tunggal maupun kutip ganda. Untuk angka yang ditulis dengan tanda
kutip akan dianggap sebagai karakter atau string (bukan Numeric Values). Adapun contoh
penulisan teks yang benar adalah sebagai berikut:
"Jl. Surabaya No. 34"
'Kota Malang'
"Saya suka masakan ini"
„123456'
"Saya akan berkunjung ke rumahmu pada hari Jum'at depan"
Date and Time Values, format standar (default) penulisan tanggal adalah
"Tahun-Bulan-Tanggal" (“YYYY-MM-DD”). Misalkan untuk 22 Januari 2002, dituliskan
"2002-01-22". Untuk menarnpilankannya, kita bisa menggunakan fungsi
DATE_FORMAT() yang dapat disesuaikan dengan kebutuhan kita. Untuk penulisan
waktu, formatnya adalah "Jam:Menit:Detik" (“HH:MM:SS”). Contoh, "13:55:07". Data
tanggal dan waktu bisa digabung penulisannya, menjadi “2002-01-22 13:55:07”.
NULL sebenarnya bukan data, tapi dia mewakili sesuatu yang "tidak pasti", 'tidak
diketahui", atau “belum ada nilainya”. NULL tidak identik dengan angka NOL (0). Sebagai
contoh, selama melakukan survei mengenai berapa jumlah pengguna sistem operasi Linux
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 26
dan Windows di Indonesia, data pastinya belum dapat diketahui sebelum survei tersebut
dilakukan secara tuntas. Oleh sebab itu, data tersebut bisa diwakili dengan NULL, alias
belum diketahui atau kosong.
2. Tipe Data Kolom Pada MySQL
Tipe data kolom merupakan rincian dari tipe data yang diterapkan pada setiap
kolom/field sebuah tabel. Penentuan tipe data kolom, dapat dilakukan saat pembuatan tabel
dengan perintah CREATE TABLE. Adapun tipe data kolom dapat dikelompokkan sebagai
berikut:
2.1 Tipe Data Kolom Numerik dan Atributnya
Tabel 1: Tipe Data Kolom Numerik
Tipe Data
Kolom
Bentuk Penulisan Jangkauan Nilai Ukuran
TINYINT TINYINT [(M)]
[UNSIGNED]
[ZEROFILL]
Bilangan bulat dengan kisaran nilai:
SIGNED: -128 s/d 127
UNSIGNED: 0 s/d 255
1 Byte
SMALLINT SMALLINT [(M)]
[UNSIGNED]
[ZEROFILL]
Bilangan bulat dengan kisaran nilai:
SIGNED: -32768 s/d 32767
UNSIGNED: 0 s/d 65535
2 Byte
MEDIUMINT MEDIUMINT [(M)]
[UNSIGNED]
[ZEROFILL]
Bilangan bulat dengan kisaran nilai:
SIGNED: -8388608 s/d 8388607
UNSIGNED: 0 s/d 1677215
3 Byte
INT INT [(M)]
[UNSIGNED]
[ZEROFILL]
Bilangan bulat dengan kisaran nilai
SIGNED:-2147683648 s/d 2147683647
UNSIGNED: 0 s/d 4294967295
4 Byte
BIGINT BIGINT [(M)]
[UNSIGNED]
[ZEROFILL]
Bilangan bulat dengan kisaran nilai:
SIGNED: -9223372036854775808 s/d
9223372036854775807
UNSIGNED:0 s/d 18446744073709551615
8 Byte
FLOAT FLOAT [(M,D)]
[UNSIGNED]
[ZEROFILL]
atau
FLOAT(4)
Bilangan pecahan presisi tunggal dengan
kisaran nilai: Nilai minimum (tanpa nilai
nol) 1.175494351E-38
Nilai maksimum (tanpa nilai nol)
6.402823466E+38
4 Byte
DOUBLE DOUBLE [(M,D)]
[UNSIGNED]
[ZEROFILL]
atau
FLOAT(8)
Bilangan pecahan presisi ganda
(double precision) dengan kisaran nilai:
Nilai minimun (tanpa nilai nol)
2.2250738580720E-308
Nilai maksimum (tanpa nilai nol)
±1.7976931348623157E+308
8 Byte
DECIMAL DECIMAL [(M,D)] Bilangan desimal, dengan nilai M Byte
tergantung pada besaran M dan D.
M Byte
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 27
2.2 Tipe Data Kolom String/Character
Tabel 2: Tipe Data Kolom String/Character
Tipe Data
Kolom
Bentuk Penulisan Keterangan Ukuran
CHAR CHAR(M) Data string dengan lebar data yang tetap(M).
Maksimum lebar data 255 karakter
M Byte
VARCHAR VARCHAR(M)
Data string dengan lebar data yang
bervariasi(M). Maksimum lebar data 255
karakter
M Byte
2.3 Tipe Data Kolom BLOB dan TEXT
Tabel 3: Tipe Data Kolom BLOB dan Text
Jenis Kolom Keterangan Ukuran
TINYBLOB Data binary dengan lebar data maksimum 255 karakter M+1 Byte
BLOB Data binary dengan lebar data maksimum 65.535 karakter M+2 Byte
MEDIUMBLOB Data binary dengan lebar data maksimum 16.777.215 karakter M+3 Byte
LONGBLOB Data binary dengan lebar data maksimum 4.294.967.295
karakter M+4 Byte
TINYTEXT Data text dengan lebar data maksimum 255 karakter M+1 Byte
TEXT Data text dengan lebar data maksimum 65.535 karakter M+2 Byte
MEDIUMTEXT Data text dengan lebar data maksimum 16.777.215 karakter M+3 Byte
LONGTEXT Data text dengan lebar data maksimum 4.294.967.295 karakter M+4 Byte
Catatan: M merupakan nilai maksimum yang diperkenankan dengan kisaran 1 s/d 255.
2.4 Tipe Data Kolom ENUM dan SET
ENUM (enumeration) dan SET (himpunan) adalah tipe data khusus. Kolomnya harus
diisi dengan nilai pilihan yang sudah ditentukan pada saat deklarasi ENUM dan SET.
Perbedaan diantara kedua tipe data tersebut adalah, pada ENUM hanya bisa dipilih salah
satu dari pilihan yang ada. Sedangkan pada SET, dapat dipilih satu atau lebih dari pilihan
yang ada. Bentuk umum pendeklarasian kedua tipe data tersebut adalah sebagai berikut;
Tabel 4: Tipe Data Kolom ENUM dan SET
Jenis Kolom Bentuk Dasar Keterangan
ENUM ENUM(nilai1, nilai2, …..,
nilaiN)
Hanya dapat menampung 1 data saja dari
pilihan data yang ada atau NULL, dengan
jumlah pilihan maksimum 65.535 pilihan
data.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 28
Jenis Kolom Bentuk Dasar Keterangan
SET SET(nilai1, nilai2, ….., nilaiN) Dapat menampung lebih dari 1 data saja
dari pilihan data yang ada atau NULL,
dengan jumlah pilihan maksimum 64
pilihan data.
Beberapa contoh pendeklarasian tipe data ENUM adalah sebagai berikut;
Jenis_Kelamin ENUM(“L”, “P”)
Status_Pernikahan ENUM(“Menikah”, ”Lajang”, ”Janda”, ”Duda”)
Status_Karyawan ENUM(“Karyawan Tetap”, “Karyawan Honorer”)
Ukuran_Baju ENUM(“S”, ”M”, ”L”, ”XL”)
Pada ENUM, kita hanya boleh memilih salah satu dari pilihan Jenis_Kelamin (“L”
atau “P”), Status_Pernikahan (“Menikah”, “Lajang”, “Janda” atau “Duda”), dan seterusnya.
Pada SET kita bisa memilih minimal satu dari pilihan yang ada. Misal pada Menu_Pilihan
(seperti contoh tipe data SET), kita bisa memilih Nasi Goreng saja, bisa juga Mie Rebus
dan Juice Apokat, atau bahkan kita pilih sernuanya (“Nasi Goreng”, “Mie Rebus”, “Juice
Apokat”, “Ayam Bakar”). Contoh pendeklarasian Set adalah sebagai berikut :
Menu_Pilihan SET(“Nasi Goreng”, “Mie Rebus”, “Juice Apokat”, “Ayam Bakar”)
Merek_Mobil SET(“Mercedes Benn”, “BMW”, “Audi”, "Toyota”, “Mitsubishi”,
”Suzuki”)
Hobby SET(“Makan”, “Tidur”, “Olah Raga”, “Travelling”, “Baca”)
2.5 Tipe Data Kolom Date dan Time
Tipe data kolom Date dan Time digunakan untuk menampung data tanggal dan jam.
Pada MySQL data tanggal dan jam, dapat pada beberapa tipe data dalam kelompok tipe
data Date and Time. Berikut ini erdpat beberapa tipe data Date and Time beserta format
penulisannya;
3. Jenis Operator Pada MySQL
Software database server MySQL juga mengenal beberapa jenis operator sebagai
penghubung suatu ekpresi matematis, logika atau perbandingan. Operator-operator pada
MySQL berdasarkan fungsinya dapat dikategorikan sebagai berikut:
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 29
Operator Logika
Tabel 5: Operator Logika
Operator Fungsi Contoh
NOT atau ! Sebagai NEGASI (bukan) dari suatu
nilai
NOT Perempuan atau !Perempuan
OR atau ||
ATAU, akan bernilai benar bila salah
satu atau kedua ekspresi adalah benar.
Buah=”Jambu” OR Buah=”Mangga”
Atau
Buah=”Jambu” || Buah=”Mangga”
AND atau &&
DAN, akan bernilai benar hanya bila
ekspresi adalah benar.
Buah=”Jambu” AND
Hewan=”Monyet”
Atau
Buah=”Jambu” && Hewan=”Monyet”
Operator Aritmatika
Tabel 6: Operator Aritmatika
Operato
r
Fungsi
+ Melakukan penjumlahan pada operasi matematika
- Melakukan pengurangan pada operasi matematika
* Melakukan perkalian pada operasi matematika
/ Melakukan pembagian pada operasi matematika
% Melakukan proses modulus (mencari sisa bagi) pada operasi
matematika
Operator Pembanding
Tabel 7: Operator Pembanding/Relasi
Operator Fungsi Contoh
= Sama dengan Nama=”anwar”
Harga=45610
> Lebih dari TinggiBadan>150
< Kurang dari TinggiBadan<150
>= Lebih dari atau sama dengan TinggiBadan>=150
<= Kurang dari atau sama dengan TinggiBadan<=150
!= atau <> Tidak sama dengan
Nama!=”anwar”
Harga<>100
3!=2
IS NOT NULL Apakah nilai tidak NULL Nama IS NOT NULL
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 30
Operator Fungsi Contoh
IS NULL Apakah nilai NULL Nama IS NULL
BETWEEN …
AND Apakah suatu nilai berada diantara nilai
Harga BETWEEN 150 AND
500
IN Apakah suatu nilai berada diantara nilai pilihan
yang ada
Nama IN (“Anwar”, “Amir”)
NOT IN Apakah suatu nilai tidak berada diantara nilai
pilihan yang ada
Nama NOT IN (“Anwar”,
“Amir”
LIKE Apakah suatu nilai memiliki kriteria nilai yang
ada
Nama LIKE “An%”
NOT LIKE Apakah suatu nilai tidak memiliki kriteria nilai
yang ada
Nama NOT LIKE “An%”
REGEXP Nilai menjadi benar bila kedua nilai tersebut
sama
a REGEXP b
NOT REGEXP Nilai menjadi benar bila kedua nilai tersebut
tidak sama
a NOT REGEXP b
<=> Nilai menjadi benar bila kedua nilai tersebut
sama
a <=> b
4. Urutan Prioritas Operator
Memahami urutan prioritas operator, akan sangat membantu kita dalam penulisan
perintah-perintah MySQL, sehingga dalam menampilkan data sesuai dengan yang kita
harapkan. Adapun urutan prioritas operator adalah sebagai berikut;
Tabel 8: Urutan Prioritas Operator
Urutan
Prioritas Operator
1 BINARY
2 NOT atau !
3 - (MINUS)
4 * / %
5 + -
6 << >>
7 &
8 |
9 < <= = => > != <> IN IS LIKE
REGEXP RLIKE
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 31
Urutan
Prioritas Operator
10 BETWEEN
11 AND atau &&
12 OR atau ||
E. LANGKAH-LANGKAH PRAKTIKUM
Guna membantu pemahaman kita dalam menggunakan berbagai macam operator dan
tipe data, lakukan beberapa perintah query berikut ini;
a. Kesimpulan apa yang dapat diambil dari penggunaan operator aritmatika berikut?
mysql>SELECT 10 + 20, 15.4 + 13.2, “24JAM” + “30HARI”,
->“12 BULAN” + “1 TAHUN”, “My” + “SQL”;
mysql>SELECT 10 - 20, 15.4 - 13.2, “24JAM” - “30HARI”,
->“12 BULAN” - “1 TAHUN”, “My” - “SQL”, -(7 - 5);
mysql>SELECT 20 % 2, 15.4 % 13.2, -25 % 4, 1 / 0;
b. Kesimpulan apa yang dapat diambil dari penggunaan operator pembanding berikut?
mysql>USE mysql;
mysql>SELECT “a” > “A”;
mysql>SELECT 10 <= 20;
mysql>SELECT user FROM user WHERE user != “anto”;
mysql>SELECT user FROM user WHERE user IS NOT NULL;
mysql>SELECT 110 BETWEEN 100 AND 500;
mysql>SELECT user FROM user WHERE user NOT LIKE “a%”;
mysql>SELECT user FROM user WHERE user IN (“anto”, “andi”);
c. Buatlah database latihdb dan table teman;
mysql>CREATE DATABASE latihdb;
mysql>USE latihdb; mysql>CREATE TABLE teman
->(noid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
->nama VARCHAR(35) NOT NULL,
->kelamin ENUM(„L‟,‟P‟),
->tmp_lahir VARCHAR(35) NOT NULL,
->tgl_lahir DATE NULL DEFAULT “0000-00-00”,
->alamat VARCHAR(50) NOT NULL,
->kota VARCHAR(35) NOT NULL);
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 32
d. Isilah table teman dengan data sebagai berikut;
Tabel 9: Data Table Teman
Noid Nama Klm Tempat
Lahir
Tanggal
Lahir
Alamat Kota
1 Ahmad Subhan L Medan 1977-09-29 Jl. Arjono 123 Medan
2 Benny Sukmana L Bogor 1971-06-22 Jl. Letjend. Sutoyo 87 Bandung
3 Subono L Semarang 1975-04-19 Jl. Panglima Sudirman 63 Solo
4 Richard Buntaran L Medan 1981-05-17 Jl. Untung Suropati 312 Malang
5 Carla Karmelita P Manado 1978-06-09 Jl. Merdeka Barat 90 Jakarta
6 Chintiawati P Cianjur 1976-01-13 Jl. Kesatrian 100 Surabaya
7 Oka Sulaksana P Denpasar 1978-11-07 Jl. Daan Mogot 75 Jakarta
8 Dwi Dirgantara L Surabaya 1975-02-07 Jl. Sidotopo IV/621B Surabaya
9 Ramli Sokoco L Madiun 1982-04-17 Jl. Sunan Giri 54 Madiun
10 Sri Sundari P Samarang 1978-12-19 Jl. Ambarawa 93 Samarang
11 Dwikoro Jatmiko L Bogor 1976-06-16 Jl. Sungai Citarum 23 Bogor
12 Dhamayanti P Cirebon 1984-08-18 Jl. Gatot Subroto 124 Cirebon
13 Dharmanwangsa L Batam 1977-07-09 Jl. Kolonel Sugiono 77 Bandung
14 Syarifa Firdaus P Cianjur 1986-01-19 Jl. Raden Rahmad 32 Malang
15 Royan Surya L Bogor 1979-01-23 Jl. Asparagus 93 Bogor
16 Ginanjar L Cibinong 1979-03-21 Jl. Ahmad Yani 100 Riau
17 Gina Sonia P Bogor 1982-09-12 Jl. Citarum 53 Bogor
18 Bartiniwati P Surakarta 1975-04-12 Jl. Sidoutomo 2 Kepanjen Malang
19 Ian Sulistio L Palembang 1978-10-11 Jl. Raden Saleh II/42 Surabaya
20 Indri Jelita P Bengkulu 1983-07-19 Jl. Ahmad Yani 21 Bengkulu
21 Junita Santiago P Padang 1980-11-09 Jl. Mayjend. Panjaitan 45 Padang
22 Moh. Umar P Malang 1973-12-25 Jl. Citandui 52 Malang
23 Aisyah Kamila L Semarang 1980-10-03 Jl. Panglima Sudirman 15 Semarang
24 Rita Nurjannah P Surabaya 1981-10-10 Jl. Sidodadi 76 Surabaya
25 Indah Mumpuni P Malang 1974-02-09 Jl. Sumbing 123 Malang
Perintah untuk menambahkan data pada table teman, adalah sebagai berikut,
mysql>INSERT INTO teman VALUES(“1”, “Ahmad Subhan”, “L” “Medan”,
->“1977-09-29”, “Jl. Arjono 123”, “Medan”); dan seterusnya.
Ulangi dan sesuaian perintah tersebut untuk menambahkan data lain pada table teman
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 33
e. Tampilkan seluruh data teman;
mysql>SELECT * FROM teman;
f. Tampilkan seluruh data teman untuk field noid, nama, tempat lahir dan tanggal lahir;
mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman;
g. Tampilkan data teman untuk field noid, nama, tempat lahir dan tanggal lahir hanya
untuk jenis kelamin perempuan (“P”);
mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman WHERE
kelamin=”P”;
h. Tampilkan data teman untuk field noid, nama, tempat lahir dan tanggal lahir hanya
untuk jenis kelamin laki-laki (“L” atau NOT “P”);
mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman
->WHERE NOT kelamin=”P”; atau
mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman
->WHERE kelamin!=”P”; atau
mysql>SELECT noid, nama, tmp_lahir, tgl_lahir FROM teman
->WHERE kelamin=”L”;
i. Tampilkan data teman yang lahir bukan di Malang;
mysql>SELECT * FROM teman WHERE NOT tmp_lahir=”Malang”; atau
mysql>SELECT * FROM teman WHERE tmp_lahir!=”Malang”;
j. Tampilkan data teman yang lahir di Malang atau di Surabaya atau di Bogor;
mysql>SELECT * FROM teman
->WHERE tmp_lahir IN (”Malang”, “Surabaya”, “Bogor”); atau
mysql>SELECT * FROM teman
->WHERE tmp_lahir=”Malang” OR tmp_lahir=“Surabaya”
->OR tmp_lahir= “Bogor”;
k. Tampilkan data teman yang lahir bukan di Malang, Surabaya atau Bogor;
mysql>SELECT * FROM teman
->WHERE tmp_lahir NOT IN (”Malang”, “Surabaya”, “Bogor”); atau
mysql>SELECT * FROM teman
->WHERE tmp_lahir!=”Malang” AND tmp_lahir!=“Surabaya”
->AND tmp_lahir!=“Bogor”;
l. Tampilkan data teman yang lahir antara 01-01-1973 hingga 31-12-1977, urut tanggal
lahir;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 34
mysql>SELECT * FROM teman
->WHERE tgl_lahir BETWEEN “1973-01-01” AND “1977-12-31”
->ORDER BY tgl_lahir;
m. Tampilkan data teman yang lahir antara 01-01-1973 hingga 31-12-1977 dan berjenis
kelamin laki-laki (L), urut nama;
mysql>SELECT * FROM teman
->WHERE tgl_lahir BETWEEN “1973-01-01” AND “1977-12-31”
->AND kelamin=”L” ORDER BY nama;
n. Tampilkan data teman yang namanya berawalan “a” dengan tidak membedakan hurup
kapital, urut nama;
mysql>SELECT * FROM teman WHERE nama LIKE “a%” ORDER BY nama;
p. Tampilkan data teman yang namanya berakhiran “a” dengan tidak membedakan hurup
kapital, urut nama;
mysql>SELECT * FROM teman WHERE nama LIKE “%a” ORDER BY nama;
q. Tampilkan data teman yang namanya mengandung “n” dengan tidak membedakan
hurup kapital, urut nama;
mysql>SELECT * FROM teman WHERE nama LIKE “%n%”
->AND kelamin=”L” ORDER BY nama;
r. Tampilkan data teman yang namanya bukan berakhiran “n” dan bukan berakhiran “a”
dengan tidak membedakan hurup kapital, urut nama;
mysql>SELECT * FROM teman WHERE nama NOT LIKE “%n”
->AND nama NOT LIKE ”%a” ORDER BY nama;
t. Tampilkan data teman untuk field noid, nama dan alamat untuk data yang beralamat
NULL, urut nama;
mysql>SELECT noid, nama, alamat FROM teman WHERE alamat IS NULL
->ORDER BY nama;
u. Tampilkan data teman untuk field noid, nama dan alamat untuk data yang tidak
beralamat NULL, urut nama;
mysql>SELECT noid, nama, alamat FROM teman WHERE alamat IS NOT NULL
->ORDER BY nama;
v. Tampilkan data teman untuk data yang namanya berakhiran “a”;
mysql>SELECT * FROM teman WHERE nama REGEXP “a$”;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 35
Penjelasan
Perintah SELECT digunakan untuk menyeleksi data yang akan ditampilkan. Data
yang diseleksi untuk ditampilkan dapat berupa hasil ekspresi matematis, logika,
pembandingan maupun data yang berasal dari objek-objek dari database seperti
TABLE ataupun VIEW.
Bentuk umum dari perintah SELECT adalah sebagai berikut;
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr, ...
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name']
[FROM table_references
[WHERE where_definition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_definition]
[ORDER BY {col_name | expr | position}
[ASC | DESC] , ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
ORDER BY <field> adalah perintah pengurutan data berdasarkan field yang dimaksud.
Defauldnya adalah urut berdasarkan PRIMARY KEY.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 36
PRAKTIKUM IV
FUNGSI BAWAAN (BUILD IN FUNCTION) MySQL
A. LATAR BELAKANG
Pemahaman yang baik tentang jenis dan karakteristik berbagai fungsi bawaan (build
in function) yang ada pada MySQL, akan sangat membantu pengguna dalam melakukan
query data. MySQL sebagai software server database, juga memiliki berbagai macam
fungsi bawaan seperti fungsi-fungsi string, numerik, tanggal dan waktu hingga fungsi
seleksi kondisi. Masing-masing fungsi memiliki karakteristik dan hasil yang berbeda
dengan lainnya.
Guna membantu peningkatan pemahaman mahasiswa dalam menggunakan berbagai
macam fungsi yang ada dalam MySQL, diperlukan tindakan uji coba dalam praktikum
berikut ini.
B. TUJUAN
Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah
mahasiswa dapat menjelaskan dan menggunakan berbagai macam fungsi bawaan (build in
function) MySQL dalam query data.
C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN
Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa
sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan
software yang dibutuhkan sebelum melakukan praktikum ini adalah;
1. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang
digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan
menggunakan kabel maupun dengan jaringan tanpa kabel (nirkabel)
2. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur
3. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 37
D. TEORI DASAR
Fungsi merupakan sekumpulan perintah/instruksi untuk menghasilkan sebuah nilai,
dengan atau tanpa melewatkan parameter. Pada MySQL telah terdapat sekumpulan fungsi-
fungsi bawaan, yang dapat digunakan dalam melakukan perintah-perintah query yang
termasuk dalam kelompok Data Manipulation Statemen (DMS). Selain itu sejak MySQL
versi 5.0, MySQL telah dilengkapi pula dengan kemampuan membuat objek fungsi yang
didefinisikan oleh pemakai sesuai keperluannya. Beberapa fungsi-fungsi bawaan dapat
dikelompokkan sebagai berikut;
4. Fungsi String
ASCII(str), merupakan fungsi yang menghasilkan nilai numerik berupa kode
ASCII dari parameter character/string (str) yang disertakan.
BIN(n), adalah fungsi yang menghasilkan nilai string berupa data biner dari
parameter nilai numerik (n) yang disertakan.
CHAR(n1[, n2, . . . ]), fungsi yang menghasilkan sekumpulan character dari
parameter kode ASCII (n1[,n2, . . .]) yang disertakan.
CHAR_LENGTH(str), menghasilkan nilai numerik berupa panjang dari
parameter string (str) yang disertakan.
CONCAT(str1, str2[, str3, . . . . ]), fungsi yang menghasilkan nilai string berupa
hasil penggabungan dari parameter-parameter string (str1, str2[, str3, . . . . ]) yang
disertakan.
CONCAT_WS(separator, str1, str2[, str3, . . . . ]), fungsi yang menghasilkan
nilai string berupa hasil penggabungan dari parameter-parameter string (str1,
str2[, str3, . . . . ]) dan dipisahkan oleh parameter separator yang disertakan.
FIELD(str, str1[, str2, str3, . . . . ]), fungsi yang menghasilkan nilai numeric
berupa urutan parameter str dari sekumpulan parameter string list (str1[, str2,
str3, . . . . ]) yang disertakan.
FIELD_IN_SET(str, string_list), fungsi untuk menghasilkan urutan str dari
sebuah sekumpulan string (string_list), jika parameter str tersebut ada dalam
sekumpulan string (string_list) yang dimaksud.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 38
INSERT(str, pos, len, newstr), fungsi yang dapat menambahkan/menyisipkan
nilai string baru (newstr) pada nilai string asal (str), pada posisi substring (pos)
sebanyak karakter (len).
LEFT(str, len), fungsi untuk menghasilkan sub string dari sebuah nilai string (str)
mulai dari karakter paling kiri sebanyak len karakter
LENGTH(str), fungsi yang dapat menghasilkan panjang string (str), diukur
dalam byte.
LOCATE(sub_str, str[, pos]), fungsi yang dapat menghasilkan nilai posisi
pertama dari sub string (sub_str) berdasarkan urutan karakter dari sebuah nilai
string (str).
LOWER(str), fungsi untuk merubah semua karakter dalam nilai string (str)
menjadi hurup kecil (lowercase). Fungsi ini sinonim untuk fungsi LCASE().
LTRIM(str), fungsi yag dapat membuang semua spasi yang berada di sebelah kiri
sebuah nilai string (str).
ORD(char), fungsi yang menghasilkan nilai kode ASCII dari karakter(char)
QUOTE(str), fungsi untuk menambahkan tanda kutip/petik („ „) pada sebuah
nilai string (str)
REPEAT(str, count), fungsi untuk menghasilkan suatu nilai string (str) sebanyak
jumlah (count) tertentu
REPLACE(str, from_str, to_str), fungsi yang dapat mengganti semua sub string
(from_str) dengan sebuah sub string baru (to_str) dalam sebuah nilai string (str).
REVERSE(str), fungsi untuk membalikkan urutan karakter dalam sebuah nilai
string (str)
RIGHT(str, len), fungis untuk menghasilkan sub string dari sebuah nilai string
(str) mulai dari karakter paling kanan sebanyak len karakter
RTRIM(str), fungsi untuk membuang semua spasi yang berada di sebelah kanan
sebuah nilai string (str).
SPACE(n), fungsi yang menghasilkan n spasi
SUBSTRING(str, pos[, len]), fungsi yang menghasilkan sebuah nilai sub string
dari sebuah string (str), mulai dari posisi tertentu (pos) hingga akhir string atau
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 39
sebanyak karakter tertentu (len). Fungsi ini sinonim dengan fungsi MID() dan
bentuk lain fungsi ini adalah SUBSTRING(str FROM pos [FOR len]).
TRIM(str), fungsi untuk membuang semua spasi yang berada di sebelah kiri dan
kanan sebuah nilai string (str).
UPPER(str), fungsi yang berguna untuk merubah semua karakter dalam nilai
string (str) menjadi hurup kapital (upercase). Fungsi ini sinonim untuk fungsi
UCASE().
5. Fungsi Numerik
ABS(n), fungsi yang menghasilkan nilai absolut dari n.
ACOS(n), fungsi untuk menghasilkan nilai arc kosinus dari n.
ASIN(n), fungsi untuk menghasilkan nilai arc sinus dari n.
ATAN(n), fungsi yang dapat menghasilkan nilai arc tangen dari n.
CEIL(n), fungsi untuk menghasilkan nilai integer terdekat yang tidak kurang dari
nilai n.. Fungsi ini sinonim dengan fugsi CEILING(n).
COS(n), fungsi yang dapat menghasilkan nilai kosinus dari n. Dimana n dalam
radian.
COT(n), fungsi yang dapat menghasilkan nilai kotangen dari n. Dimana n dalam
radian.
DEGREES(n), fungsi untuk menghasilkan nilai derajat (degrees) dari nilai n
radian.
EXP(n), fungsi untuk menghasilkan nilai exponensial dari nilai numerik n
FLOOR(n), fungsi yang dapat menghasilkan nilai integer terdekat yang tidak lebih
dari nilai n..
LN(n), fungsi untuk menghasilkan nilai LEN (logaritma natural) dari nilai numerik
n. Fungsi ini sinonim dengan fungsi LOG().
LOG([b,] n), fungsi yang dapat menghasilkan sebuah nilai dengan ketentuan, jika
parameternya Cuma satu yaitu n, maka akan menghasilkan nilai LEN (logaritma
natural) dari nilai numerik n (sinonim dengan fungsi LN()). namun jika ada dua
parameter (b dan n), maka akan menghasilkan nilai logaritma basis b dari nilai n.
LOG2(n), fungsi untuk menghasilkan nilai logaritma basis 2 dari nilai numerik n.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 40
LOG10(n), fungsi untuk menghasilkan nilai logaritma basis 10 dari nilai numerik n.
MOD(n, m), fungsi untuk menghasilkan nilai sisa (modulus) dari proses pembagian
integer n dengan m. Fungsi ini sama dengan operator % atau MOD.
PI(), fungsi yang mengahsilkan nilai PI
POW(n, m), fungsi untuk menghasilkan nilai n pangkat m.
RADIANS(n), fungsi yang dapat menghasilkan nilai radian dari n derajat.
RAND([n]), fungsi untuk menghasilkan nilai acak (random) antara 0 hingga 1.0.
Parameter n (jika disertakan) digunakan sebagai awal bilangan acak.
ROUND(n[, d]), fungsi yang dapat menghasilkan nilai integer terdekat dari nilai
numerik n. jika parameter d disertakan maka akan menghasilkan pecahan terdekat
dari nilai numerik n dengan d digit desimal.
SIN(n), fungsi untuk menghasilkan nilai sinus dari nilai numerik n dalam radian.
SQRT(n), fungsi yang menghasilkan nilai positif dari akar kuadrat n.
TAN(n), fungsi untuk menghasilkan nilai tangent dari nilai numerik n dalam radian.
TRUNCATE(n, d), fungsi yang menghasilkan nilai numerik dengan
menghilangkan digit desimal pad nilai numerik n hingga menyisakan d digit
desimal.
6. Fungsi Date dan Time
ADDDATE(expr1, expr2), fungsi yang dapat digunakan untuk menghasilkan
tanggal dari tanggal awal (expr1) ditambah interval hari yang ditentukan (expr2).
Fungsi ADDDATE sinonim dengan fungsi DATE_ADD.
ADDTIME(expr1, expr2), fungsi yang menghasilkan jam dari jam awal (expr1)
ditambah interval jam yang ditentukan (expr2).
CURDATE(), fungsi untuk menghasilkan tanggal sistem saat ini dalam format
'YYYY-MM-DD' atau YYYYMMDD. Fungsi ini sinonim dengan fungsi
CURRENT_DATE().
CURTIME(), fungsi untuk menghasilkan jam sistem saat ini dalam format
'HH:MM:SS' atau HHMMSS format. Fungsi ini sinonim dengan fungsi
CURRENT_TIME().
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 41
DATE(expr), fungsi untuk menghasilkan tanggal dari nilai/value datetime yang
disertakan dalam ekspresi (expr).
DATE_FORMAT(datetime, format), fungsi yang dapat menghasilkan nilai tanggal
dan jam (datetime value) dalam format tertentu.
DAY(date), fungsi untuk menghasilkan tanggal dari sebuah urutan tahun-bulan-
tanggal (date). Fungsi ini sinonim dengan fungsi DAYOFMONTH().
DAYNAME(date), fungsi yang dapat mengahasilkan nama hari dari sebuah nilai
tanggal (date)
DAYOFWEEK(date), fungsi untuk menghasilkan urutan hari dalam minggu (1 =
Sunday, 2 = Monday, ... 7 = Saturday) dari sebuah nilai tanggal (date).
DAYOFYEAR(date), fungsi yang dapat menghasilkan hari ke berapa dalam tahun
dari sebuah nilai tanggal (date).
NOW(), fungsi untuk menghasilkan tanggal dan jam sistem saat ini dalam format
'YYYY-MM-DD HH:MM:SS' atau YYYYMMDDHHMMSS.
7. Fungsi Aggregasi
AVG(expr), fungsi untuk menghasilkan nilai rata-rata sekelompok nilai dari sebuah
kolom (field) numerik.
COUNT(expr), fungsi untuk menghasilkan nilai jumlah data (baris/record) dari
sekelompok data tabel maupun view.
MAX(expr), fungsi yng dapat menghasilkan nilai tertinggi sekelompok nilai dari
sebuah kolom (field) numerik
MIN(expr), fungsi untuk menghasilkan nilai terendah sekelompok nilai dari sebuah
kolom (field) numerik
SUM(expr), fungsi yang dapat menghasilkan nilai total jumlah sekelompok nilai
dari sebuah kolom (field) numerik.
STDDEV_POP(expr), fungsi untuk menghasilkan nilai standart deviasi populasi
dari expr.
VAR_POP(expr), fungsi yang dapat menghasilkan nilai standart varian populasi
dari expr.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 42
8. Fungsi Seleksi Kondisi
IF (expr1, expr2, expr3), fungsi pengujian yang dapat menghasilkan nilai expr2
jika expr1 terpenuhi atau bernilai TRUE, dan akan menampilkan nilai expr3 jika
expr1 tidak terpenuhi atau bernilai FALSE.
IFNULL(expr1, expr2), fungsi pengujian untuk menghasilkan nilai expr1, jika
expr1 tidak NULL, dan akan menampilkan nilai expr2 jika expr1 adalah NULL.
CASE WHEN [condition] THEN [result] [WHEN [condition] THEN [result] …]
[ELSE result] END
E. LANGKAH-LANGKAH PRAKTIKUM
Guna membantu pemahaman kita dalam menggunakan berbagai macam fungsi
bawaan (build in function) MySQL, lakukan beberapa perintah query berikut ini;
a. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi string berikut ini;
mysql> SELECT ASCII('2');
mysql> SELECT ASCII(2);
mysql> SELECT ASCII('dx');
mysql> SELECT BIN(12);
mysql> SELECT CHAR(77,121,83,81,'76');
mysql> SELECT CHAR(77,77.3,'77.3');
mysql> SELECT CHAR_LENGTH(„SRI DEVI');
Apa yang dapat disimpulkan dari penggunaan fungsi string ASCII, BIN, CHAR dan
CHAR_LENGTH ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
b. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi string berikut ini;
mysql> SELECT CONCAT(„SRI‟, „DEVI', „PERMATASARI‟);
mysql> SELECT CONCAT_WS(„-‟, „SRI DEVI', „PERMATA‟, „SARI‟);
mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 43
mysql> SELECT FIND_IN_SET('b', 'a, b, c, d');
mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
mysql> SELECT RIGHT('MySQL', 3);
mysql> SELECT LENGTH ( 'text');
Apa yang dapat disimpulkan dari penggunaan fungsi string CONCAT, FIELD, FIND_IN_SET,
INSERT, RIGHT dan LENGTH ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
c. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi string berikut ini;
mysql> SELECT LOCATE('bar', 'foobarbar');
mysql> SELECT LOCATE('xbar', 'foobar');
mysql> SELECT LOCATE('bar', 'foobarbar',5);
mysql> SELECT LOWER('MySQL');
mysql> SELECT RTRIM(' barbar');
mysql> SELECT ORD('2');
mysql> SELECT QUOTE('Don\'t');
mysql> SELECT QUOTE(NULL);
mysql> SELECT REPEAT('MySQL', 3);
Apa yang dapat disimpulkan dari penggunaan fungsi string LOCATE, LOWER, RTRIM, ORD,
QUOTE dan REPEAT ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
d. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi string berikut ini;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 44
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
mysql> SELECT REVERSE('MySQL');
mysql> SELECT RIGHT('MySQL', 3);
mysql> SELECT RTRIM('barbar ');
mysql> SELECT SPACE(6);
mysql> SELECT SUBSTRING('Quadratically',5);
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
mysql> SELECT SUBSTRING('foobarbar' FROM 4 FOR 3);
mysql> SELECT SUBSTRING('Quadratically', 5, 6);
mysql> SELECT RTRIM(' barbar ');
mysql> SELECT UPPER('mySQL');
Apa yang dapat disimpulkan dari penggunaan fungsi string REPLACE, REVERSE, RIGHT,
SPACE, SUBSTRING, RTRIM dan UPPER ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
e. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi numerik berikut ini;
mysql> SELECT ABS (2);
mysql> SELECT ABS (-32);
mysql> SELECT ACOS (1);
mysql> SELECT ACOS (1,0001);
mysql> SELECT ACOS (0);
mysql> SELECT ASIN (0,2);
mysql> SELECT ASIN ( 'foo');
mysql> SELECT ATAN(2);
mysql> SELECT ATAN(-2);
mysql> SELECT CEIL(2.43);
mysql> SELECT CEIL(-2.43);
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 45
mysql> SELECT COS(PI());
Apa yang dapat disimpulkan dari penggunaan fungsi numerik ABS, ACOS, ASIN, ATAN,
CEIL dan COS ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
f. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi numerik berikut ini;
mysql> SELECT COT(12);
mysql> SELECT COT(0);
mysql> SELECT DEGREES(PI());
mysql> SELECT EXP(2);
mysql> SELECT EXP(-2);
mysql> SELECT FLOOR(2.43);
mysql> SELECT FLOOR(-2.43);
mysql> SELECT LN(2);
mysql> SELECT LN(-2);
mysql> SELECT LOG(2);
mysql> SELECT LOG(-2);
mysql> SELECT LOG(2,65536);
mysql> SELECT LOG(1,100);
mysql> SELECT LOG10(2);
mysql> SELECT LOG10(100);
mysql> SELECT LOG10(-100);
Apa yang dapat disimpulkan dari penggunaan fungsi numerik COT, DEGREES, EXP, FLOOR,
LN, LOG dan LOG10 ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 46
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
g. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi numerik berikut ini;
mysql> SELECT MOD(234, 10);
mysql> SELECT 253 % 7;
mysql> SELECT MOD(9, 2);
mysql> SELECT 9 MOD 2;
mysql> SELECT PI();
mysql> SELECT PI()+0.000000000000000000;
mysql> SELECT POW(2, 2);
mysql> SELECT POW(2, -2);
mysql> SELECT POW(5, 3);
mysql> SELECT RADIANS(90);
mysql> SELECT RADIANS(30);
mysql> SELECT RAND();
mysql> SELECT RAND(20);
Apa yang dapat disimpulkan dari penggunaan fungsi numerik MOD, PI, POW, RADIAN dan
RAND ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
h. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi numerik berikut ini;
mysql> SELECT ROUND(-1.23);
mysql> SELECT ROUND(-1.58);
mysql> SELECT ROUND(1.58);
mysql> SELECT ROUND(1.298, 1);
mysql> SELECT ROUND(23.298, -1);
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 47
mysql> SELECT SIN(RADIANS(90));
mysql> SELECT SIN(RADIANS(30));
mysql> SELECT SQRT(4);
mysql> SELECT SQRT(20);
mysql> SELECT TAN(RADIANS(45));
mysql> SELECT TAN(RADIANS(30));
mysql> SELECT TRUNCATE(1.223,1);
mysql> SELECT TRUNCATE(-1.999,1);
Apa yang dapat disimpulkan dari penggunaan fungsi numerik ROUND, SIN, SQRT, TAN dan
TRUNCATE ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
i. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi date and time berikut ini;
mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
mysql> SELECT ADDDATE('1998-01-02', 31);
mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999', '1 1:1:1.000002');
mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
mysql> SELECT CURDATE();
mysql> SELECT CURDATE() + 0;
mysql> SELECT CURTIME();
mysql> SELECT CURTIME() + 0;
Apa yang dapat disimpulkan dari penggunaan fungsi date and time DATE_ADD, ADDDATE,
CURDATE dan CURTIME ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 48
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
j. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi date and time berikut ini;
mysql> SELECT DATE('2003-12-31 01:02:03');
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%D %y %a %d %m %b
%j');
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00','%H %k %I %r %T %S
%w');
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
mysql> SELECT DAYOFMONTH('1998-02-03');
mysql> SELECT DAYNAME('1998-02-05');
mysql> SELECT DAYOFWEEK('1998-02-03');
mysql> SELECT DAYOFYEAR('1998-02-03');
mysql> SELECT NOW();
mysql> SELECT NOW() + 0;
Apa yang dapat disimpulkan dari penggunaan fungsi date and time DATE, DATE_FORMAT,
DAYOFMONTH, DAYNAME, DAYOFWEEK, DAYOFYEAR dan NOW ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
k. Perhatikan apa yang dihasilkan dari penggunaan fungsi-fungsi seleksi kondisi berikut
ini;
mysql> SELECT IF(1>2,2,3);
mysql> SELECT IF(1<2,'yes','no');
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 49
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
mysql> SELECT IFNULL(1,0);
mysql> SELECT IFNULL(NULL,10);
mysql> SELECT IFNULL(1/0,10);
mysql> SELECT IFNULL(1/0,'yes');
mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
mysql> SELECT CASE BINARY 'B'
WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Apa yang dapat disimpulkan dari penggunaan fungsi seleksi kondisi IF, IFNULL dan CASE
WHEN ?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 50
PRAKTIKUM V
MEMBUAT, MERUBAH, MENDUPLIKASI
DAN MENGHAPUS TABEL
A. LATAR BELAKANG
Kemampuan untuk mengunakan bahasa query untuk membuat, merubah,
menduplikasi dan menghapus sebuah Tabel, sangat dibutuhkan oleh perancang database.
Desain database secara konsep yang telah dibuat harus dapat diimplementasikan secara
fisik ke dalam server database.
Basisdata (database) merupakan sekumpulan objek yang dapat terdiri dari tabel, view
maupun yang lainnya, yang terhububung satu dengan lainnya. Objek tabel sebagai salah
satu komponen vital dari sebuah database harus dibuat/diciptakan terlebih dahulu sebelum
melakukan penyimpanan data (record). Pada kondisi tertentu, terkadang sebuah tabel perlu
untuk dilakukan perubahan struktur datanya, digandakan, dirubah namanya atau bahkan
tabel tersebut harus dihapus dari sebuah database.
Guna membantu meningkatkan pemahaman mahasiswa dalam menggunakan berbagai
macam perintah query dalam lingkup Data Definition Statement (DDS), utamanya untuk
membuat, merubah struktur data, menggandakan dan menghapus sebuah tabel, diperlukan
tindakan uji coba dalam praktikum berikut ini.
B. TUJUAN
Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah
mahasiswa dapat membuat, merubah (memodifikasi), menggandakan serta menghapus
objek Tabel dengan menggunakan Data Definition Statemen (DDS).
C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN
Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa
sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan
software yang dibutuhkan sebelum melakukan praktikum ini adalah;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 51
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] <table_name> (<table_structure>);
Perintah CREATE DATABASE <databse_name> digunakan untuk
membuat/menciptakan database. Sedangkan perintah untuk menambah atau menyisipkan
data pada sebuah table, dapat menggunakan perintah;
INSERT [INTO] <table_name> [(col_name1, col_name2, …)] VALUES(<value1,
value2, …>)
atau
INSERT [INTO] <table_name> SET col_name1=value1, col_name2=value2, ….
atau
INSERT [INTO] <table_name> [(col_name1, col_name2, …)] SELECT ….
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 52
Contoh :
mysql>INSERT INTO dosen
->VALUES („D1001‟,‟Roy Markun‟,‟L‟,‟Bogor‟,‟1969-01-23‟,‟Jl. Mayjend.
Sungkono 93‟);
atau
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 <new_table_name> 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 <original_table_name> RENAME <new_table_name>;
atau
RENAME TABLE <original_table_name> TO <new_table_name>;
Original_table_name adalah nama asli dari table yang akan diganti, sedangkan
new_table_name merupakan nama pengganti.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 53
4. Menghapus Table
Perintah SQL yang dapat digunakan untuk menghapus sebuah table cukup sederhana,
yaitu dengan cara sebagai berikut;
DROP TABLE [IF EXISTS] <table_name>;
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 <table_name> <ADD | CHANGE | DROP | MODIFY>…..;
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 <table_name> CHANGE COLUMN <column_name>
<column_definition>;
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.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 54
5.2 Menambah Field
Menambah field pada sebuah tabel dapat dilakukan dengan cara memberikan perintah
SQL sebagai berikut;
ALTER TABLE <table_name> ADD COLUMN <column_name>
<column_definition> AFTER <column_name>;
atau
ALTER TABLE <table_name> ADD COLUMN <column_name> FIRST
<column_name>;
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 <table_name> MODIFY <column_name> <column_definition>
FIRST;
atau
ALTER TABLE <table_name> MODIFY <column_name> <column_definition>
AFTER <column_name> ;
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 <table_name> DROP COLUMN <field_name>
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 55
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 <table_name> ADD PRIMARY KEY <column_name>;
Sedangkan perintah SQL untuk menambah kunci tamu (Foreign Key) adalah sebagai
berikut;
ALTER TABLE <table_name> ADD COINSTRAINT
<constrain_foreign_name> FOREIGN KEY <constrain_foreign_name>
(<field_name_for_foreign_name>) REFERENCES <table_name_reference>
(<field_name_for_foreign_name>) [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,
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 56
->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
nama_dosen kelami
n
tmp_lahir tgl_lahir alamat
D1001 Roy Markun L Bogor 1969-01-23 Jl. Mayjend. Sungkono 93
D1002 Ginanjar L Jakarta 1971-03-21 Jl. Ahmad Yani 100
D1003 Gina Sonia P Bandung 1962-09-12 Jl. Citarum 53
D1004 Ian Antono L Palembang 1970-10-11 Jl. Raden Saleh II/42
D1005 Indri Jelita P Bengkulu 1973-07-19 Jl. Ahmad Yani 21
D1006 Desi Ratnasari P Padang 1970-11-09 Jl. Mayjend. Panjaitan 45
D2001 Moh. Umar P Malang 1973-12-25 Jl. Citandui 52
D2002 Aisyah Kamila L Semarang 1968-10-03 Jl. Panglima Sudirman 15
D2003 Ike Nurjannah P Surabaya 1971-10-10 Jl. Sidodadi 76
Tabel 2: Data Mahasiswa
Nim nama_mhs klm tmp_lahir tgl_lahir alamat
0151001 Gogon L Medan 1982-09-29 Jl. Arjono 123
0151002 Tukul Arwana L Bogor 1982-06-22 Jl. Letjend. Sutoyo 87
0151003 Timbul L Semarang 1983-04-19 Jl. Panglima Sudirman 63
0151004 Nunung P Manado 1982-06-09 Jl. Merdeka Barat 90
0151005 Rohana P Cianjur 1981-01-13 Jl. Kesatrian 100
0151006 Jujuk P Denpasar 1983-11-07 Jl. Sarangan 75
0151007 Eko L Surabaya 1982-12-07 Jl. Gajayana IV/621B
0151008 Basuki L Madiun 1982-06-17 Jl. Sunan Giri 54
0151009 Lilik Sundari P Samarang 1982-12-19 Jl. Ambarawa 93
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 57
Tabel 3: Data Jenis Ujian
kode_ujian nama_ujian
UJR Ujian Reguler
UTS Ujian Tengah Semester
UAS Ujian Akhir Semester
UJP Ujian Perbaikan
Tabel 4: Data Matakuliah
kode_mtk nama_mtk sks kode_dosen
KD_001 Sistem Basis Data 3 D1006
KD_002 Sistem Operasi 3 D2002
KD_003 Sistem Berkas 2 D1004
KD_004 Arsitektur & Organisasi Komputer 3 D1002
KK_001 Algoritma & Pemrograman 1 4 D1001
KK_002 Algoritma & Pemrograman 2 4 D2001
KK_003 Algoritma & Pemrograman 3 2 D1003
KK_004 Pemrograman Clint-Server 3 D1003
KK_005 Pemrograman Berbasis WEB 3 D2003
KK_006 Pemrograman Berbasis WAP 3 D1005
KK_007 Pemrograman Delphi 2 D2001
KK_008 Pemrograman Visual Basic 2 D1005
Tabel 5: Data Hasil Ujian
nim kode_mtk kode_ujian nilai
0151001 KK_003 UJR 74
0151001 KK_004 UTS 82
0151001 KK_005 UAS 65
0151001 KK_006 UJP 56
0151002 KK_007 UJR 67
0151002 KK_008 UTS 98
0151002 KD_001 UJR 95
0151002 KD_002 UTS 83
0151003 KD_003 UTS 65
0151003 KD_004 UAS 76
0151003 KK_001 UJP 85
0151003 KK_002 UJR 96
0151004 KK_003 UTS 97
0151004 KD_001 UAS 88
0151004 KD_002 UTS 69
0151004 KD_003 UAS 74
0151005 KD_004 UJP 44
0151005 KK_001 UJR 55
0151005 KK_002 UTS 86
0151006 KK_003 UAS 67
0151006 KK_007 UAS 78
0151006 KK_008 UJP 45
0151007 KD_001 UJR 56
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 58
nim kode_mtk kode_ujian nilai
0151007 KD_002 UAS 64
0151008 KD_003 UJR 76
0151009 KK_007 UJR 68
0151009 KK_008 UTS 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;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 59
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;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 60
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 perintah-
perintah
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;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 61
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;
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
Table Jenis Ujian
kode_ujian*
nama_ujian
Table Matakuliah
kode_mtk*
nama_mtk
sks
kode_dosen**
Table Hasil Ujian
nim**
kode_mtk**
kode_ujian**
nilai
Table Dosen
kode_dosen*
nama_dosen
kelamin
tmp_lahir
tgl_lahir
alamat
Table Mahasiswa
nim*
nama_mhs
kelamin
tmp_lahir
tgl_lahir
alamat
Database Hasil Ujian
Mahasiswa
Keterangan : * Primary Key ** Foreign Key
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 62
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;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 63
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%”);
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 64
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;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 65
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
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 66
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
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 67
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
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 68
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 <view_name>), 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 <view_name> AS <select_statement>;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 69
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 <view_name> AS <select_statement>;
Menghapus keberadaan sebuah objek view dapat dilakukan dengan perintah SQL sebagai
berikut;
DROP VIEW [IF EXISTS] <view_name>;
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
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 70
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 Jumlah Usia_Rata2
Laki-Laki ….. ……..
Perempuan ….. ……..
2. Tampilkan Nim, Nama Mahasiswa, Kode Matakuliah, Nama Matakuliah dan Nilai dari
Table Hsl_Ujian, Mahasiswa dan Matakuliah. Data diurutkan berdasarkan Nim
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 71
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 Grade Bobot
0 – 45 E 0
46 – 50 D 1
51 – 55 C 2
56 – 65 C+ 2,5
66 – 75 B 3
76 – 80 B+ 3,5
80 – 100 A 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 Rata-
Rata Kelas.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 72
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
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 73
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
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 74
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
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 75
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
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 76
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.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 77
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.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 78
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.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 79
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.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 80
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
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 81
Gambar 9: Fasilitas Restore Data Pada MySQL Administrator
Gambar 10: Proses Restore Data Pada MySQL Administrator
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 82
6. Replikasi Data
Replikasi data merupakan proses backup data dari server aktif secara real time dan
berlansung secara terus menerus, ke suatu mesin server cadangan. Membuat backup dengan
menggunakan fasilitas replikasi (replication), memungkinkan didapatkan backup yang
sempurna dari suatu database MySQL yang besar dan aktif, tanpa melakukan penghentian
dari server yang bersangkutan. Tanpa replikasi, backup akan memperlambat sistem dan ada
kemungkinan data yang tidak konsisten, karena bisa saja satu tabel berubah sementara tabel
lain yang berhubungan tidak berubah dan karena sedang di-backup.
Mematikan server akan menjamin data yang konsisten, tetapi ini berarti
menghentikan layanan pada pengguna dan sangat tidak diharapkan. Kadangkala
penghentian ini tidak dapat dihindarkan, tetapi penghentian setiap hari tidak dapat diterima.
Metoda alternatif backup data dengan proses replikasi, MySQL menjamin backup
sempurna tanpa harus menghentikan server tiap hari.
Replikasi merupakan konfigurasi sistem server MySQL, yang memadukan sistem
kerja antara Master Server sebagai penyimpan data dan menangani permintaan pengguna,
dengan server MySQL yang lain, yang dinamakan Slave Server. Slave Server sendiri, berisi
copy data Master Server, dan melakukan semua SQL statement yang mengubah data di
Master Server secara real time. Dengan demikian backup dapat dilakukan secara periodik
atau secara terus menerus, tanpa harus mematika server utama. Mekanisme untuk
melakukan replikasi data, adalah dengan melakukan seting/konfigurasi pada kedua mesin
server, baik pada Master Server maupun pada Slave Server. Berikut ini langkah-langkah
dalam melakukan konfigurasi proses replikasi data pada kedua mesin server;
7.1 Konfigurasi Pada Master Server
Konfigurasi yang harus dilakukan pada mesin Master Server adalah sebagai berikut;
Lakukan perubahan seting pada file C:\Program Files\MySQL\MySQL Server
5.0\My.ini, dengan menggunakan program Text Editor
Tambahkah skrip berikut pada bagian [mysqld]
[mysqld]
log-bin=mysql-bin
server-id=1 Nomer/Id mesin Master Server
Simpan dan tutup file tersebut
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 83
Aktifkan Program MySQL Administrator, dan lakukan sesi login ke server MySQL
dengan user root
Lakukan restarting server dengan memilih modul Servis Control, kemudian pilih/click
tombol Stop Service untuk menghentikan server. Aktifkan kembali dengan pilih/click
tombol Start Service.
Masuklah ke server MySQL sebagai root melalui program MySQL Query Browser,
dengan urutan menu yang dipilih Start Programs MySQL MySQL Query
Browser. Masukkan server host, port, user name dan password yang sesuai, serta
default schema yang diinginkan. Click OK.
Gambar 11: Kotak Dialog Koneksi ke Server Dengan MySQL Query Browser
Buatlah user baru melalui interface Query Browser, misalkan dengan nama replikator
dan hak aksesnya adalah replication slave.
GRANT REPLICATION SLAVE
ON *.* TO „replikator‟@‟slave_host‟ atau nomer IP mesin Slave Server
IDENTIFIED BY „12345‟; 12345 merupakan password dari user
replikator
Jalankan perintah berikut
flush privileges;
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 84
show maseter status;
Lakukan backup data untuk database yang akan direplikasi. Backup data dapat
dilakukan dengan menggunakan modul Backup pada program MySQL
Administrator. Dalam contoh berikut, database yang akan direplikasi adalah
database/schema test.
Gambar 12: Proses Backup Data
Lihat status replikasi dengan menggunakan modul Repliction Status pada program
MySQL Administrator. Pilih/click tombol Refresh, kemudian catat log file (biasanya
mysql-bin.0000xx) dan log pos-nya. Nama log file dan nomer log pos, selanjutnya akan
digunakan untuk menyeting mesin Slave Server.
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 85
Gambar 13: Informasi Log File dan Log Pos Pada Modul Replication Status
7.2 Konfigurasi Pada Slave Server
Konfigurasi yang harus dilakukan pada mesin Master Server adalah sebagai berikut;
Lakukan proses restoring data dari file hasil proses backup data yang telah dilakukan di
mesin Master Server. Gunakan modul Restore pada program MySQL
Administrator, dan login ke mesin Slave Server sebagai root.
Lakukan perubahan seting pada file C:\Program Files\MySQL\MySQL Server
5.0\My.ini, dengan menggunakan program Text Editor.
Tambahkah skrip berikut pada bagian [mysqld]
[mysqld] server-id=2 Nomer/Id mesin Slave Server
master-host=192.168.0.1 sesuaikan dengan IP mesin Master Server
master-port=3306 sesuaikan dengan nomer Port yang digunakan
master-user=replikator nama user pemilik hak replication slave
master-password=12345 password user pemilik hak replication slave
master-connect-retry=60 replicate-do-db=test nama database/schema yang akan direplikasi
relay-log=mysql-bin.0000xx nama log file yang tercatat di mesin Master
Server
relay-log-index=mysql-bin.index
STMIK PPKIA Pradnya Paramita
Modul Praktikum Sistem Basis Data .............................................................................. 86
Simpan dan tutup file tersebut
Aktifkan Program MySQL Administrator, dan lakukan sesi login ke server MySQL
dengan user root
Lakukan restarting server dengan memilih modul Servis Control, kemudian pilih/click
tombol Stop Service untuk menghentikan server. Aktifkan kembali dengan pilih/click
tombol Start Service.
Masuklah ke server MySQL sebagai root melalui program MySQL Query Browser,
dengan urutan menu yang dipilih Start Programs MySQL MySQL Query
Browser. Masukkan server host, port, user name dan password yang sesuai, serta
default schema yang diinginkan. Click OK.
Lakukan seting dengan perintah-perintah berikut pada interface Query Browser;
stop slave;
change master to
master_host=’192.168.0.1’, sesuaikan dengan IP mesin Master Server
master_user=’replikator’, nama user pemilik hak replication slave
master_password=’12345’, password user pemilik hak replication
slave
master_log_file=’mysql-bin.0000xx’, log file yang tercatat di mesin Master
Server
master_log_pos=xxx; log pos yang tercatat di mesin Master
Server
start slave;
Setelah semua langkah-langkah penyetingan dilakukan, baik pada mesin Master
Server maupun pada Slave Server dan mesin Slave Server sudah dapat dipastikan aktif,
maka semua perubahan data yang terjadi pada mesin Master Server akan berlaku pula pada
mesin Server Slave.