86
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

PRAKTIKUM I MENGGUNAKAN SOFTWARE …staffsite.stimata.ac.id/assets/uploads/files/...sistem-basis-data.pdf · Modul Praktikum Sistem Basis Data ... adalah untuk mengembangkan aplikasi

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.