P. 1
Database management system

Database management system

|Views: 313|Likes:
Dipublikasikan oleh bayugoder
modul
modul

More info:

Published by: bayugoder on Dec 19, 2012
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/05/2015

pdf

text

original

Page 1 of 54

MODUL MATA KULIAH DATABASE MANAGEMENT SYSTEM

Disusun Oleh:

Riky Faza, ST.

Politeknik PIKSI Ganesha Bandung 2011

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 2 of 54

Kata Pengantar

MySQL merupakan software database open source yang paling populer didunia, dimana saat ini digunakan lebih dari 100 juta pengguna di seluruh dunia. Dengan kehandalan, kecepatan dan kemudahan penggunaannya, MySQL menjadi pilihan utama bagi banyak pengembang software dan aplikasi baik di platformweb maupun desktop. Pengguna MySQL tidak hanya sebatas pengguna perseorangan maupun perusahaan kecil, namun perusahaan seperti Yahoo!, Alcatel Lucent, Google, Nokia, Youtube, Wordpress dan Facebook juga merupakan pengguna MySQL. MySQL pertama kali dibuat dan dikembangkan di Swedia, yaitu oleh David Axmark, Allan Larsson dan Michael "Monty" Widenius. Mereka mengembangkan MySQL sejak tahun 1980 an. Saat ini versi MySQL yang sudah stabil mencapai versi 5x, dan sedang dikembangkan versi 6x. Untuk lebih lengkapnya dapat dilihat di situs resmi MySQL1. Pembahasan dalam modul ini mencakup beberapa pokok bahasan diantaranya

1. Sekilas tentang MySQL. Pengenalan Database, DBMS dan RDBMS. Beberapa istilah database. Hirarki database. Pengenalan Database MySQL. Penggunaan EMS MySQL Manager 2. Dasar MySQL. Dasar penggunaan MySQL, tipe tabel, tipe data dan merancang database yang baik 3. Dasar DDL SQL. Dasar pembuatan objek database dan objek tabel 4. Dasar DML MySQL. Dasar pengoperasian manipulasi data pada sebuah database. 5. DML MySQL Lanjut. Membahas pengoperasian data menggunakan perintah JOIN. 6. Fungsi Built In MySQL. Berisi pembahasan fungsi-fungsi dasar MySQL. 7. View. Pembuatan objek view sebagai cara untuk mengakses data tanpa menggunakan query secara langsung. 8. Stored Procedure dan Function. Membahas pembuatan objek procedure dan objek function untuk mempercepat proses manipulasi data. 9. Trigger. Pembuatan dan penghapusan trigger. 10. Mengakses database MySQL melalui pemrograman PHP.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 5 of 54

Kontrak Perkuliahan

Mata Kuliah : Database Management System (DBMS) Kode Mata Kuliah / SKS : / 4 SKS Semester : Dosen : Hari, jam, ruang :

Deskripsi Mata Kuliah Mata kuliah ini bermaksud untuk memperkenalkan teknik-teknik pengelolaan basis data dengan menggunakan produk basis data MySQL. Pengelolaan basis data dilakukan dengan menggunakan sebuah bahasa yaitu SQL (Structured Query Language). SQL bukanlah bahasa pemrograman, SQL digunakan untuk memanipulasi sebuah basis data, bahasa SQL terdiri dari 3 kelompok yaitu, Data Definition Language, Data Manipulation Language dan Data Control Language. Materi-materi pokok yang akan dibahas dalam mata kuliah ini antara lain : Sekilas tentang MySQL, Command prompt MySQL dan EMS SQL Manager sebagai tools developer. Perancangan dan pembuatan objek-objek basis data. Manipulasi objek dan data. Penggunaan fungsi-fungsi bawaan (Built In Function) MySQL. Stored Procedure Programming. Penggunaan MySQL dalam aplikasi nyata. Backup, Restore dan Import. Tujuan Kompetensi Umum Setelah mengikuti perkuliahan, mahasiswa diharapkan dapat 1) Menjelaskan pengertian basis data dan MySQL, 2) Menjelaskan penggunaan MySQL Manager sebagai tool developer, 3) Membuat objek-objek basis data, 4) Memanipulasi data menggunakan kode SQL, 5) Menggunakan fungsi-fungsi bawaan MySQL, 6) Membuat stored procedure, 7) menggunakan MySQL dalam aplikasi nyata, 8) Backup, Restore dan Import. Tujuan Kompetensi Khusus Setelah mahasiswa mengikuti perkuliahan ini diharapkan mampu: 1. 2. 3. 4. 5. 6. 7. 8. Menjelaskan tentang MySQL. Menggunakan developer tool EMS MySQL Manager. Memanipulasi objek-objek database. Memanipulasi data-data dalam database menggunakan kode SQL. Menggunakan dan menerapkan fungsi-fungsi MySQL (Built In Function). Membuat Stored Procedure. Menggunakan MySQL dengan aplikasi pemrograman (PHP). Melakukan Backup, Restore dan Import

Strategi Perkuliahan Perkuliahan dilaksanakan dengan metode ceramah, diskusi, praktek menggunakan komputer, penugasan berupa studi kasus. Pustaka 1. MySQL: Essential Skills by John W. Horn and Michael Grey ISBN:0072255137 McGraw-Hill/Osborne © 2004 2. MySQL Stored Procedure Programming By Steven Feuerstein, Guy Harrison Publisher: O'Reilly Pub Date: March 2006 3. Achmatim.Net Tugas 1. Tugas diberikan setiap pertemuan kuliah dan wajib dikumpulkan maksimal di pertemuan minggu berikutnya. Dosen memberikan tugas yang berkaitan langsung dengan materi yang disampaikan pada saat perkuliahan. Tugas dikumpulkan dengan cara mengirim email ke alamat email dosen yang bersangkutan. 2. Tugas Akhir wajib dikerjakan per individu, berupa soal kasus. Contohnya kasus : Perpustakaan. Mahasiswa wajib merancang database perpustakaan, menggambarkan diagram ERD, memanipulasi objek dan memanipulasi datanya. Semuanya dalam bentuk kode SQL. Kode SQL tersebut dapat disalin kedalam file Ms. Word. Tugas paling terakhir dikumpulkan 2 minggu setelah UAS.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 6 of 54

Penilaian Dan Bobot Penilaian Penilaian yang diberikan meliputi 4 (empat) komponen, yaitu:

Komponen Ujian Tengah Semester Ujian Akhir Semester Tugas Absensi / partisipasi Total Bobot semua komponen

Bobot 30 % 40 % 20 % 10 % 100 %

Penilaian akhir merupakan gabungan nilai dari semua komponen tersebut di atas. Kriteria penilaian yang digunakan adalah:

Angka Mutu 80 - 100 70 - 79 60 - 69 50 - 59 0 - 49

Huruf Mutu A B C D E

Kehadiran Dalam Perkuliahan Kehadiran dalam perkuliahan minimal 10 kali dari 14 kali perkuliahan.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 7 of 54

Garis-Garis Besar Program Pembelajaran Berbasis Kompetensi

Perguruan Tinggi Kompetensi Judul Unit Kompetensi

: : :

POLITEKNIK PIKSI GANESHA DATABASE MANAGEMENT SYSTEM (MYSQL) Mengoperasikan aplikasi basis data Menerapkan basis data Mengoperasikan bahasa pemrograman data description (SQL) dasar Mengoperasikan bahasa pemrograman data description (SQL) lanjut Membuat program untuk membangkitkan data dasar

Kode Unit

:

TIK.PR02.020.01 TIK.PR02.021.01 TIK.PR03.001.01 TIK.PR03.002.01 TIK.PR03.004.01

Deskripsi Singkat

:

Unit kompetensi ini berkaitan dengan keahlian dalam merancang bangun database menggunakan perkakas Database Management System (DBMS) MySQL sebagai dasar dalam pembuatan aplikasi lanjut yang berbasis client server maupun web based

Perkiraan Waktu Pembelajaran

:

MATERI ELEMEN KOMPETENSI KRITERIA UNJUK KERJA INDIKATOR UNJUK KERJA PEMBELAJARAN SIKAP 1 1 2 Mengenal DBMS dan EMS MySQL Manager 3 Memahami DBMS Mengenal MySQL Menggunakan EMS MySQL Manager 2 Membuat tabel Tabel di buat dengan menggunakan wizard. Wizard table merupakan fitur aplikasi untuk membantu membuat table dengan 4 Dapat menjelaskan mengenai DBMS dan Salah satu Aplikasinya (MySQL) dan dapat menggunakan EMS MySQL Manager Dapat membuat database dan table pada MySQL menggunakan kode SQL dan fitur grafik pada EMS MySQL Manager 5 Menggunakan aplikasi EMS MySQL Manager dan Mempelajari lebih dalam mengenai DBMS Membuat database dan tabel PENGETAHUAN 6 Dapat menjelaskan DBMS secara umum serta fungsinya dan Memahami penggunaan EMS MySQL Manager Dapat menjelaskan cara pembuatan database dan tabel beserta jenis-jenis tipe data KETERAMPILAN 7 Dapat menggunakan aplikasi EMS MySQL Manager untuk pengelolaan database PEMBELAJARAN ALAT BANTU 9 Komputer Modul

NO

METODE 8 Praktek menggunakan aplikasi

Dapat membuat database dan tabel menggunakan kode SQL dan fitur Grafik

Presentasi

Komputer Modul

Membuat database dan tabel

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 8 of 54

memanfaatkan fasilitas yang tersedia Tabel di buat dengan menggunakan fitur pembuat table. Fitur pembuat table menyediakan kolom nama field, tipe data dan deskripsi field Tabel di buat dengan menggunakan bahasa data deskripsi (SQL) 3 Mengisi tabel Pengisian data pada table menggunakan perintah standar seperti, insert, update dan delete yang di sesuaikan dengan informasi dan kondisi nya Tabel sudah disimpan, di beri nama dan terisi data Index table di buat dan di atur dengan menggunakan perintah standar berupa : create index dan drop index. 4 Merubah data dan menghapus data Merubah data yang sudah disisipkan pada tabel Menghapus data Dapat melakukan operasi perubahan data simple dan lanjut dan menghapus data simple dan lanjut Merubah data dan menghapus tanpa kriteria dan dengan kriteria Dapat menjelaskan operasi manipulasi data berupa perubahan dan penghapusan data Dapat melakukan operasi manipulasi data dengan update dan delete Presentasi Komputer Modul Praktek manipulasi data Presentasi Komputer Modul Praktek manipulasi tabel Presentasi Komputer Modul Membuat view Dapat memanipulasi data dalam database dengan operasi penyisipan data (insert) dan dapat menambahkan index Mengisi data pada tabel dengan perintah DML insert dan menambahkan index dengan perintah DDL Alter Tabel Dapat menjelaskan cara penyisipan data pada tabel dan dapat menjelaskan pembuatan index Dapat melakukan operasi penyisipan data dan pembuatan index Presentasi Komputer Modul Membuat database dan tabel

5

Merubah struktur tabel

Merubah struktur tabel yang sudah jadi

Dapat melakukan proses perubahan struktur tabel yang sudah jadi

Merubah struktur tabel

Dapat menjelaskan cara merubah struktur tabel yang sudah jadi

Dapat merubah struktur tabel yang sudah jadi dengan perintah alter dengan beberapa kondisi

6

Membuat table view (query)

View di buat dengan wizard view yang ada, wizar view merupakan fitur aplikasi untuk membantu membuat view dari table yang ada dengan memanfaatkan fasilitas yang telah di sediakan Fitur-fitur view di pahami dan di aplikasikan Field telah di pilih sesuai dengan tabelnya

Dapat membuat objek view untuk membaca data dari satu atau beberapa tabel

Membuat objek view untuk dapat menampilkan data dari satu atau beberapa tabel dengan cepat

Dapat menjelaskan cara pembuatan view dan fungsi dari view tersebut

Dapat membuat dan menghapus view dan dapat membuat view sesuai dengan kebutuhan

7

Mengoperasikan table dan view

Data table di tampilkan dengan perintah select. Perintah select yang digunakan dapat berupa select dengan kondisinya seperti : distinct, where, order by, group by, having dsb.

Dapat mengoperasikan tabel dan view dengan perintah select dengan kondisinya seperti : distinct, where, order by, group by, having dsb

Mengoperasikan view dan tabel dengan berbagai kondisi

Dapat menjelaskan cara pengoperasian view dan tabel

Dapat mengoperasikan tabel dan view dengan berbagai macam kondisi

Presentasi

Komputer Modul

Mengoperasikan tabel dan view

8 9

UJIAN TENGAH SEMESTER Mengoperasikan table dan view Data table di tampilkan dengan perintah select yang melibatkan (join) dengan beberapa table yang lain . Perintah select yang di gunakan dapat berupa select dengan kondisinya seperti : distinct, where, order by, group by, having dsb. Dapat mengoperasikan Dapat mengoperasikan perintah select dengan beberapa tabel yang di join seperti inner join dan outer join Mengoperasikan perintah select dari beberapa tabel dengan join Dapat menjelaskan cara pengoperasian perintah select dan join Dapat mengoperasikan perintah select dengan perintah select dan join Presentasi Komputer Modul Mengoperasikan tabel dan view

10

Mengoperasikan

Dapat mengoperasikan

Mengoperasikan

Dapat menjelaskan

Dapat

Mengoperasikan

Komputer

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 9 of 54

fungsi-fungsi mysql

fungsi string Dapat mengoperasikan fungsi Tanggal dan Waktu Dapat mengoperasikan fungsi numerik

built in function MySQL (string, Date Time, Numeric)

fungsi-fungsi built in (string, datetime, numeric)

cara menggunakan fungsi-fungsi bawaan mysql dan menggunakannya pada aplikasi

mengoperasikan fungsi-fungsi mysql standar (built in)

fungsi mysql

Modul

11

Membuat dan mengoperasikan prosedur

Prosedur di buat dan di atur dengan menggunakan perintah standar pada DDL dan DML Parameter prosedur di proses sesuai dengan kebutuhan di dalam prosedur Prosedur di simpan dan di beri nama Prosedur dapat di jalankan dan bekerja dengan benar

Dapat Membuat dan mengoperasikan prosedur tanpa parameter dan berparameter

Membuat dan mengoperasikan prosedur sesuai kebutuhan

Dapat menjelaskan cara kerja prosedur dan cara penggunaan prosedur tersebut

Dapat membuat dan mengoperasikan prosedur

Membuat dan mengoperasikan prosedur

Komputer Modul

12

Membuat dan mengoperasikan fungsi

Fungsi di buat dan di atur dengan menggunakan perintah standar pada DDL dan DML Parameter fungsi di proses sesuai dengan kebutuhan di dalam fungsi Fungsi di simpan dan di beri nama Fungsi dapat di jalankan dan bekerja dengan benar

Dapat Membuat dan mengoperasikan Fungsi tanpa parameter dan berparameter

Membuat dan mengoperasikan fungsi sesuai kebutuhan

Dapat menjelaskan cara kerja fungsi dan cara penggunaan fungsi tersebut

Dapat membuat dan mengoperasikan fungsi

Membuat dan mengoperasikan fungsi

Komputer Modul

13

Membuat dan mengoperasikan trigger

Trigger di buat dan di atur dengan menggunakan perintah standar pada DDL dan DML Triger di simpan dan di beri nama Trigger dapat di jalankan dan bekerja dengan benar

Dapat membuat dan menggunakan trigger

Membuat dan menggunakan trigger

Dapat menjelaskan cara kerja trigger

Dapat membuat dan menggunakan trigger

Membuat dan mengoperasikan trigger

Komputer Modul

14

Menulis kode program pembangkitan data

Kode program di tulis berdasarkan diagram program pembangkitan data sesuai dengan bahasa yang di gunakan Kode program di kompilasi dan dicari kesalahan sintak atau penulisan kode program Kode program di kompilasi menjadi paket program (executable file)

Dapat membuat program pembangkit data menggunakan PHP

Membuat program pembangkit data menggunakan PHP

Dapat menjelaskan cara pembuatan program untuk pembangkit data

Dapat membuat program pembangkit data menggunakan pemrograman PHP

Membuat program pembangkit data

Komputer Modul

15

Backup, Restore dan Import di MySQL

Melakukan operasi backup, Restore dan Import

Dapat melakukan operasi backup, restore dan import

Melakukan operasi backup, restore dan import

Dapat menjelaskan cara backup, import dan restore

Dapat melakukan operasi backup, restore dan import

Melakukan operasi backup, restore dan import

Komputer Modul

16

UJIAN AKHIR SEMESTER

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 10 of 54

BAB I PENDAHULUAN

1. Tujuan Kompetensi Khusus Pengenalan Database, DBMS dan RDBMS Beberapa istilah database Hirarki database Pengenalan Database MySQL Penggunaan EMS MySQL Manager

11. 12. 13. 14. 15.

2. Sekilas Tentang MySQL Pengenalan Database, DBMS dan RDBMS Basis data (atau database) adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut (http://id.wikipedia.org/wiki/Database). Database digunakan untuk menyimpan informasi atau data yang terintegrasi dengan baik di dalam komputer.

Untuk mengelola database diperlukan suatu perangkat lunak yang disebut DBMS (Database Management System). DBMS merupakan suatu system perangkat lunak yang memungkinkan user (pengguna) untuk membuat, memelihara, mengontrol, dan mengakses database secara praktis dan efisien. Dengan DBMS, user akan lebih mudah mengontrol dan memanipulasi data yang ada.

Sedangkan RDBMS atau Relationship Database Management System merupakan salah satu jenis DBMS yang mendukung adanya relationship atau hubungan antar tabel. Di samping RDBMS, terdapat jenis DBMS lain, misalnya Hierarchy DBMS, Object Oriented DBMS, dsb. Beberapa software atau perangkat lunak DBMS yang sering digunakan dalam aplikasi program antara lain :
        

DB2 - http://www-306.ibm.com/software/data/db2/ Microsoft SQL Server - http://www.microsoft.com/sql/ Oracle - http://www.oracle.com Sybase - http://www.sybase.com/ Interbase - http://www.borland.com/interbase Teradata - http://www.teradata.com/ Firebird - http://www.firebirdsql.org/ MySQL – http://www.mysql.com PostgreSQL - http://www.postgresql.org/

Beberapa Istilah Database Table Sebuah tabel merupakan kumpulan data (nilai) yang diorganisasikan ke dalam baris (record) dan kolom (field). Masing-masing kolom memiliki nama yang spesifik dan unik. Field Field merupakan kolom dari sebuah table. Field memiliki ukuran type data tertentu yang menentukan bagaimana data nantinya tersimpan. Record Field merupakan sebuah kumpulan nilai yang saling terkait. Key Key merupakan suatu field yang dapat dijadikan kunci dalam operasi tabel. Dalam konsep database, key memiliki banyak jenis diantaranya Primary Key, Foreign Key, Composite Key, dll.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 11 of 54

SQL SQL atau Structured Query Language merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL sering disebut juga sebagai query. Hierarki Database Dalam konsep database, urutan atau hierarki database sangatlah penting. Urutan atau hierarki database digambarkan dalam gambar sbb :

Gambar 1.1 Hirarki Database

1. M ySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU GeneralPublic License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.

Tidak seperti PHP atau Apache yang merupakan software yang dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia yaitu MySQL AB. MySQL AB memegang penuh hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.

MySQL dapat didownload di situs resminya, http://www.mysql.com. Fitur-fitur MySQL antara lain : 1. Relational Database System. Seperti halnya software database lain yang ada di pasaran, MySQL termasuk RDBMS. 2. Arsitektur Client-Server. MySQL memiliki arsitektur client-server dimanaserver database MySQL terinstal di server. Client MySQL dapat berada dikomputer yang sama dengan server, dan dapat juga di komputer lain yangberkomunikasi dengan server melalui jaringan bahkan internet. 3. Mengenal perintah SQL standar. SQL (Structured Query Language)merupakan suatu bahasa standar yang berlaku di hampir semua softwaredatabase. MySQL mendukung SQL versi SQL:2003. 4. Mendukung Sub Select. Mulai versi 4.1 MySQL telah mendukung select dalam select (sub select). 5. Mendukung Views. MySQL mendukung views sejak versi 5.0 6. Mendukung Stored Prosedured (SP). MySQL mendukung SP sejak versi 5.0 7. Mendukung Triggers. MySQL mendukung trigger pada versi 5.0 namunmasih terbatas. Pengembang MySQL berjanji akan meningkatkan kemampuantrigger pada versi 5.1. 8. Mendukung replication. 9. Mendukung transaksi. 10. Mendukung foreign key. 11. Tersedia fungsi GIS. 12. Free (bebas didownload) 13. Stabil dan tangguh 14. Fleksibel dengan berbagai pemrograman 15. Security yang baik

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 12 of 54

16. Dukungan dari banyak komunitas 17. Perkembangan software yang cukup cepat. Menggunakan MySQL dengan Tool EMS MySQL Manager 1. Koneksi ke server M ySQL Untuk menggunakan MySQL Server maka terlebih dahulu harus dilakukan proses instalasi pada komputer yang kita gunakan. Software MySQL dapat di download secara gratis di situs : www.mysql.com . Anda bisa mendownload versi terakhir dari situs tersebut. Terdapat banyak pilihan platform yang bisa dipilih diantaranya Windows, Linux, Mac OS, Free BSD dll.

Praktek penggunaan MySQL yang dilaksanakan di Lab bisa menggunakan XAMPP. XAMPP adalah aplikasi server yang berisi PHP, MYSQL, Filezilla, Mercury dan lain-lain. Di dalam XAMPP telah terdapat software MySQL Server sehingga tidak perlu dilakukan lagi proses instalasi MySQL Server.

Sebelum bisa digunakan maka pastikan terlebih dahulu bahwa service MySQL sudah RUNNING.

Gambar 1.2 XAMPP Control Panel

Berbagai MySQL Client untuk Administrasi Server MySQL Berikut ini beberapa tools yang biasa digunakan dalam mempermudah administrasi server MySQL. Tools berikut ini hanya digunakan untuk mempermudah administrasi MySQL, jadi tidak harus digunakan.

1. M ySQL Command Line Client MySQL Command Line Client merupakan tools default MySQL yang sudah disertakan dalam file instalasi MySQL. Aplikasi ini dapat digunakan untuk melakukan koneksi ke MySQL melalui text-based mode.

Gambar 1.3 MySQL Command Line Client

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 13 of 54

2. PHPMyAdmin PHPMyAdmin merupakan front-end MySQL berbasis web. PHPMyAdmin dibuat dengan menggunakan PHP. Saat ini, PHPMyAdmin banyak digunakan dalam hampir semua penyedia hosting yang ada di internet. PHPMyAdminmendukung berbagai fitur administrasi MySQL termasuk manipulasi database,tabel, index dan juga dapat mengeksport data ke dalam berbagai format data.PHPMyAdmin juga tersedia dalam 50 bahasa lebih, termasuk bahasaIndonesia. PHPMyAdmin dapat didownload secara gratis dihttp://www.phpmyadmin.net

Gambar 1.4 PHPMyAdmin

3. SQL M anager For M ySQL EMS SQL Manager For MySQL merupakan front-end MySQL berbasis Windows yang cukup mudah digunakan, SQL Manager For MySQL memiliki user interface yang cukup mudah digunakan, bahkan oleh user pemula.

Gambar 1.5 EMS SQL Manager For MySQL

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 14 of 54

Langkah penggunaan 1. Dari menu Database ->Register Host

Gambar 1.6 Register Host

2. Hostname diisi dengan nama komputer server, username diisi dengan nama user, password diisi dengan password milik user tersebut, klik Next.

Gambar 1.7 Register Database Wizard

3. Secara default server database MySQL memiliki 3 buah database yaitu : information_scheme, mysql, test. Pindahkan database tersebut ke bagian kanan lalu klik Next, terakhir klik Finish. Langkah pembuatan database Dari menu database pilih Create Database, lalu ikuti langkah-langkah Create Database Wizard.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 15 of 54

Gambar 1.8 Create Database Wizard

BAB II DASAR MYSQL

1. Tujuan Kompetensi Khusus 1. Tipe Tabel MySQL 2. Tipe Field MySQL 3. Merancang database yang baik 2. Tabel MySQL Tipe-tipe Tabel MySQL Salah satu kelebihan dari MySQL adalah Anda dapat mendefinisikan tipe untuk tiap tabel. MySQL mendukung beberapa tipe tabel, tergantung konfigurasi saat proses instalasi MySQL. MySQL memiliki 3 (tiga) tipe data utama, yaitu MyISAM, InnoDB dan HEAP.

Jika kita tidak menyebutkan tipe tabel saat membuat tabel, maka tipe tabel otomatis akan dibuat sesuai konfigurasi default server MySQL. Hal ini ditentukan oleh variabel default-table-type di file konfigurasi MySQL. MyISAM Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan mudah digunakan. Jika kita akan menyimpan data sederhana yang tidak terlalu rumit, maka gunakanlah tipe tabel ini. Kelebihan utama MyISAM adalah kecepatan dan kestabilannya. Jika kita memilih tipe tabel MyISAM, maka MySQL secara otomatis akan menentukan salah satu dari tiga jenis tabel MyISAM, yaitu :

1. M yI SAM static. Jenis ini digunakan ketika semua kolom dalam tabel didefinisikan dengan ukuran yang pasti (fixed). Dengan kata lain, tidak ada kolom yang memiliki tipe seperti VARCHAR, TEXT dan BLOB. Karena sifatnya yang fixed, maka jenis ini akan lebih cepat, aman dan stabil. 2. MyISAM dymanic. Jenis ini digunakan ketika terdapat kolom dengan tipe yang dinamis, seperti tipe kolom VARCHAR. Keuntungan utama dari jenis ini adalah ukuran yang dinamis. Jadi sifatnya lebih efektif karena ukuran data (file) menyesuaikan isi dari masingmasing kolom (field). 3. MyISAM Compressed. Kedua jenis MyISAM, static dan dynamic dapat dikompresi menjadi satu jenis yaitu MyISAM Compressed dengan perintah myisamchk. Tentunya hasilnya lebih kecil dari segi ukuran. Tabel yang terkompresi tidak dapat dikenakan operasi seperti INSERT, UPDATE dan DELETE.

InnoDB Tipe tabel InnoDB merupakan tipe tabel MySQL yang mendukung proses transaksi. Tipe ini memiliki beberapa keunggulan, antara lain: a. Mendukung transaksi antar tabel. b. Mendukung row-level-locking. c. Mendukung Foreign-Key Constraints. d. Crash recovery.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 16 of 54

HEAP Tabel dengan tipe HEAP tidak menyimpan datanya di hardisk, tetapi menyimpan di RAM (memori). Tipe tabel ini biasanya digunakan sebagai tabel sementara (temporary). Tabel secara otomatis akan dihapus (hilang) dari MySQL saat koneksi ke server diputus atau server MySQL dimatikan. Tipe Tabel yang Lain Selain 3 (tiga) tipe tabel diatas, yaitu MyISAM, InnoDB dan HEAP, MySQL juga mendukung tipe tabel yang lain, yaitu:

1. BDB. Tipe tabel ini mirip tipe tabel InnoDB, namun penggunaannya belum maksimal. 2. Archieve. Tipe ini tersedia sejak MySQL versi 4.1. Tipe ini digunakan untuk menyimpan tabel yang terkompresi, dimana biasanya digunakan dalam proses backup. 3. CSV. Tipe ini digunakan untuk menyimpan data dalam bentuk file text yang dibatasi dengan koma (delimiter). Tipe ini tersedia sejak MySQL versi 4.1. 4. NDB Table (MySQL Cluster). Tersedia sejak MySQL versi 4.1. 5. Federated (External Tables). Tipe ini tersedia sejak MySQL versi 5.0. Tipe-tipe Field (Kolom) MySQL MySQL memiliki cukup banyak tipe data untuk field (kolom) tabel. Tipe field (kolom) ini menentukan besar kecilnya ukuran suatu tabel. Tipe field di MySQL setidaknya terbagi menjadi beberapa kelompok, yaitu numerik, string, date and time, dan kelompok himpunan (set dan enum). Masingmasing tipe field memiliki batasan lebar dan ukurannya. Tipe Numeric Tipe data numerik digunakan untuk menyimpan data numeric (angka). Ciri utama data numeric adalah suatu data yang memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe numerik:

1. TINYINT Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif. Jangkauan : -128 s/d 127 Ukuran : 1 byte (8 bit). 2. SMALLINT Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif. Jangkauan : -32.768 s/d 32.767 Ukuran : 2 byte (16 bit). 3. MEDIUMINT Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif. Jangkauan : -8.388.608 s/d 8.388.607 Ukuran : 3 byte (24 bit). 4. INT Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif. Jangkauan : -2.147.483.648 s/d 2.147.483.647

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 17 of 54

Ukuran : 4 byte (32 bit). 5. BIGINT Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif. Jangkauan : 9,22 x 1018

Ukuran : 8 byte (64 bit). 6. FLOAT Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi tunggal. Jangkauan : -3.402823466E+38 s/d -1.175494351E-38, 0, dan 1.175494351E-38 s/d 3.402823466E+38. Ukuran : 4 byte (32 bit). 7. DOUBLE Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi ganda. Jangkauan : -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308. Ukuran : 8 byte (64 bit). 8. REAL Merupakan sinonim dari DOUBLE. 9. DECIMAL Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif. Jangkauan : -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308. Ukuran : 8 byte (64 bit). 10. NUMERIC Merupakan sinonim dari DECIMAL. Tipe Date dan Time Tipe data date dan time digunakan untuk menyimpan data tanggal dan waktu. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe date dan time: 1. DATE Penggunaan : digunakan untuk menyimpan data tanggal. Jangkauan : 1000-01-01 s/d 9999-12-31 (YYYY-MM-DD) Ukuran : 3 byte. 2. TIME

Penggunaan : digunakan untuk menyimpan data waktu.
Jangkauan : -838:59:59 s/d +838:59:59 (HH:MM:SS) Ukuran : 3 byte.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 18 of 54

3. DATETIME

Penggunaan : digunakan untuk menyimpan data tanggal dan waktu.
Jangkauan : '1000-01-01 00:00:00' s/d '9999-12-31 23:59:59' Ukuran : 8 byte. 4. YEAR Penggunaan : digunakan untuk menyimpan data tahun dari tanggal. Jangkauan : 1900 s/d 2155 Ukuran : 1 byte. Tipe String (Text) Tipe data string digunakan untuk menyimpan data string (text). Ciri utama data string adalah suatu data yang memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe string: 1. CHAR Penggunaan : digunakan untuk menyimpan data string ukuran tetap. Jangkauan : 0 s/d 255 karakter 2. VARCHAR Penggunaan : digunakan untuk menyimpan data string ukuran dinamis. Jangkauan : 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535 (versi 5.0.3) 3. TINYTEXT Penggunaan : digunakan untuk menyimpan data text. Jangkauan : 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535 (versi 5.0.3) 4. TEXT Penggunaan : digunakan untuk menyimpan data text. Jangkauan : 0 s/d 65.535 (216 - 1) karakter 5. MEDIUMTEXT Penggunaan : digunakan untuk menyimpan data text. Jangkauan : 0 s/d 224 - 1 karakter 6. LONGTEXT Penggunaan : digunakan untuk menyimpan data text. Jangkauan : 0 s/d 232 - 1 karakter Tipe BLOB (Biner) Tipe data blob digunakan untuk menyimpan data biner. Tipe ini biasanya digunakan untuk menyimpan kode-kode biner dari suatu file atau object. BLOBmerupakan singkatan dari Binary Large Object. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe blob: 1. BIT (sejak versi 5.0.3) Penggunaan : digunakan untuk menyimpan data biner.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 19 of 54

Jangkauan : 64 digit biner 2. TINYBLOB Penggunaan : digunakan untuk menyimpan data biner. Jangkauan : 255 byte 3. BLOB Penggunaan : digunakan untuk menyimpan data biner. Jangkauan : 216 - 1 byte 4. MEDIUMBLOB Penggunaan : digunakan untuk menyimpan data biner. Jangkauan : 224 - 1 byte 5. LONGBLOB Penggunaan : digunakan untuk menyimpan data biner. Jangkauan : 232 - 1 byte Tipe Data yang Lain Selain tipe data di atas, MySQL juga menyediakan tipe data yang lain. Tipe data di MySQL mungkin akan terus bertambah seiring dengan perkembangan versi MySQL. Berikut ini beberapa tipe data tambahan MySQL: 1. ENUM Penggunaan : enumerasi (kumpulan data). Jangkauan : sampai dengan 65535 string. 2. SET Penggunaan : combination (himpunan data). Jangkauan : sampai dengan 255 string anggotas.

Merancang Database yang Baik Seperti telah disebutkan sebelumnya, bahwa rancangan database menentukan suatu aplikasi efektif atau tidak, efisien atau tidak, baik atau tidak. Pembahasan mengenai bagaimana merancang database yang baik tentunya sangat panjang. Kita dapat mencari referensi terkait dengan perancangan database. Beberapa Aturan Merancang Database yang Baik. 1. Tabel dalam database tidak boleh mengandung record (data) ganda, atau dengan kata lain tidak boleh ada redudancy data. Jika terdapat data yang sama, maka perlu dilihat kembali rancangan tabelnya. 2. Setiap tabel dalam database, harus memiliki field (kolom) yang unik. Field ini disebut sebagai Primary Key. 3. Tabel harus sudah normal. 4. Besar atau ukuran database hendaknya dibuat seminimal mungkin. Hal ini ditentukan oleh pemilihan tipe data yang tepat. 5. Merancang database hendaknya memperhatikan apakah rancangan dapat menampung data (record) sesuai yang dibutuhkan oleh aplikasi. Tips Penamaan Identifier.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 20 of 54

1. Penamaan identifier (database, tabel, kolom) di MySQL bersifat casesensitive. Penamaan identifier hendaknya konsisten untuk semua tabel dalam suatu database. Kita dapat menggunakan model lower-case, UPPER-CASE, camelCase dll. 2. Nama database, tabel dan kolom maksimal 64 karakter. 3. Hindari penggunaan karakter khusus, seperti üàû, karena bisa bermasalah dalam sistem operasi yang lain. 4. Pilih nama untuk field (kolom) yang mencerminkan isi dari data yang disimpan. Tugas Cari dasar teori / konsep mengenai MySQL. Mulai dari pengertian, fitur-fitur, kelebihan/kekurangan, fungsi-fungsi, dan sintak dasar!

BAB III DASAR DDL SQL
Tujuan Kompetensi Khusus 1. Pendahuluan 2. Perintah DDL 1. Pendahuluan Perintah DDL dalam bahasa SQL : DDL atau Data Definition Language DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal ini database dan table. Beberapa perintah dasar yang termasuk DDL ini antara lain :
   

CREATE ALTER RENAME DROP

Membuat, Menampilkan, Membuka dan Menghapus Database Membuat Database Sintaks umum SQL untuk membuat suatu database adalah sebagai berikut :
CREATE DATABASE [ I F NOT EXI STS] nam a_dat abas e;

Bentuk perintah di atas akan membuat sebuah database baru dengan nama nama_database. Aturan penamaan sebuah database sama seperti aturan penamaan sebuah variabel, dimana secara umum nama database boleh terdiri dari huruf, angka dan under-score (_). Jika database yang akan dibuat sudah ada, maka akan muncul pesan error. Namun jika ingin otomatis menghapus database yang lama jika sudah ada, aktifkan option IF NOT EXISTS.

Berikut ini contoh perintah untuk membuat database baru dengan nama “ penj ual an” :
CREATE DATABASE penj ual an;

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 21 of 54

Jika query di atas berhasil dieksekusi dan database berhasil dibuat, maka akan ditampilkan pesan kurang lebih sebagai berikut :
Quer y OK, 1 r ow af f ec t ed ( 0. 02 s ec )

Menampilkan Database Untuk melihat database yang baru saja dibuat atau yang sudah ada, dapat menggunakan perintah sebagai berikut :
SHOW DATABASES;

Hasil dari perintah di atas akan menampilkan semua database yang sudah ada di MySQL. Berikut ini contoh hasil dari query di atas : +- - - - - - - - - - - - - - + | Dat abase | +- - - - - - - - - - - - - - + | penj ual an | | m ysql | | t est | +- - - - - - - - - - - - - - +
3 r ows i n s et ( 0. 02 s ec )

Membuka Database Sebelum melakukan manipulasi tabel dan record yang berada di dalamnya, kita harus membuka atau mengaktifkan databasenya terlebih dahulu. Untuk membuka database “penjualan”, berikut ini querynya :
USE penj ual an;

Jika perintah atau query di atas berhasil, maka akan ditampilkan pesan sebagai berikut :
Dat abas e c hanged

Menghapus Database Untuk menghapus suatu database, sintaks umumnya adalah sbb :
DROP DATABASE [ I F EXI STS] nam a_dat abas e;

Bentuk perintah di atas akan menghapus database dengan nama nama_database. Jika databasenya ada maka database dan juga seluruh tabel di dalamnya akan dihapus. Jadi berhati-hatilah dengan perintah ini! Jika nama database yang akan dihapus tidak ditemukan, maka akan ditampilkan pesan error. Aktifkan option IF EXISTS untuk memastikan bahwa suatu database benar-benar ada. Berikut ini contoh perintah untuk menghapus database dengan nama “penjualan”
DROP DATABASE penj ual an;

Membuat, Mengubah dan Menghapus Table Membuat Tabel Baru

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 22 of 54

Bentuk umum SQL untuk membuat suatu table secara sederhana sebagai berikut :
CREATE TABLE nam a_t abel ( f i el d1 t i pe( panj ang) , f i el d2 t i pe( panj ang) , ... f i el dn t i pe( panj ang) , PRI M ARY KEY ( f i el d_k ey ) );

Bentuk umum di atas merupakan bentuk umum pembuatan tabel yang sudah disederhanakan. Penamaan tabel dan field memiliki aturan yang sama dengan penamaan database. Sebagai contoh, kita akan membuat tabel baru dengan struktur sebagai berikut :

Nama tabel : pelanggan No Nama Field Tipe Panjang 1 id_pelanggan * Varchar 5 2 nm_pelanggan Varchar 30 3 alamat Text 4 telepon Varchar 20 5 email Varchar 50

Untuk membuat tabel tersebut di atas, query atau perintah SQL-nya adalah sebagai berikut :
CREATE TABLE pel anggan ( i d_pel anggan v ar c har ( 5) NOT NULL, nm _pel anggan v ar c har ( 30) NOT NULL, al am at t ex t , t el epon v ar c har ( 20) , em l v ar c har ( 50) , ai PRI M ARY KEY( i d_pel anggan) );

Selanjutnya untuk melihat tabel mhs sudah benar-benar sudah ada atau belum, ketikkan perintah berikut ini :
SHOW TABLES;

Perintah di atas akan menampilkan seluruh tabel yang sudah ada dalam suatu database. Contoh hasil dari perintah di atas adalah sebagai berikut :
+- - - - - - - - - - - - - - - - - - - - - + | Tabl es_i n_penj ual an | +- - - - - - - - - - - - - - - - - - - - - + | pel anggan | +- - - - - - - - - - - - - - - - - - - - - + 1 r ows i n set ( 0. 01 sec)

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 23 of 54

Untuk melihat struktur tabel “mhs” secara lebih detail, cobalah perintah atau query sebagai berikut :
DESC pel anggan;

DESC merupakan singkatan dari DESCRIBE (dalam query bisa ditulis lengkap atau hanya 4 karakter pertama) dan pelanggan adalah nama tabel yang akan dilihat strukturnya. Dari perintah di atas, akan ditampilkan struktur tabel pelanggan sebagai berikut :
+- - - - - - - - - - - - - - +- - - - - - - - - - - - - +- - - - - - +- - - - - +- - - - - - - - - +- - - - - - - + | Fi el d | Type | Nul l | Key | Def aul t | Ext r a | +- - - - - - - - - - - - - - +- - - - - - - - - - - - - +- - - - - - +- - - - - +- - - - - - - - - +- - - - - - - + | i d_pel anggan | var char ( 5) | NO | PRI | | | | nm _pel anggan | var char ( 30) | NO | | | | | al am at | t ext | YES | | NULL | | | t el epon | var char ( 20) | YES | | NULL | | | em l | var char ( 50) | YES | | NULL | | ai +- - - - - - - - - - - - - - +- - - - - - - - - - - - - +- - - - - - +- - - - - +- - - - - - - - - +- - - - - - - + 5 r ows i n set ( 0. 00 sec)

Mengubah Struktur Table dengan ALTER Untuk mengubah struktur suatu tabel, bentuk umum perintah SQL-nya sebagai berikut :
ALTER TABLE nam a_t abel al t er _opt i ons ;

dimana :
  

ALTER TABLE merupakan perintah dasar untuk mengubah tabel. nama_tabel merupakan nama tabel yang akan diubah strukturnya. alter_options merupakan pilihan perubahan tabel. Option yang bisadigunakan, beberapa di antaranya sebagai berikut :  ADD definisi_field_baru Option ini digunakan untuk menambahkan field baru dengan“definisi_field_baru” (nama field, tipe dan option lain).

ADD I NDEX nama_index

Option ini digunakan untuk menambahkan index dengan nama “nama_index” pada tabel.

ADD PRI M ARY KEY (field_kunci) Option untuk menambahkan primary key pada tabel

CHANGE field_yang_diubah definisi_field_baru Option untuk mengubah field_yang_diubah menjadi definisi_field_baru

MODIFY definisi_field Option untuk mengubah suatu field menjadi definisi_field

DROP nama_field Option untuk menghapus field nama_field

RENAME TO nama_tabel_baru Option untuk mengganti nama tabel

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 24 of 54

Beberapa contoh variasi perintah ALTER untuk mengubah struktur suatu tabel antara lain : 1. Menambahkan field “ tgllahir” ke tabel pelanggan
>>ALTER TABLE pel anggan ADD t gl l ahi r dat e NOT NULL;

2. Menambahkan primary key pada suatu tabel
>>ALTER TABLE pel anggan ADD PRI M ARY KEY( i d_pel anggan) ;

3. Mengubah tipe field tgllahir menjadi varchar dalam tabel pelanggan
>>ALTER TABLE pel anggan M ODI FY t gl l ahi r var char ( 8) NOTNULL;

4. Menghapus field tgllahir dari tabel pelanggan
>>ALTER TABLE pel anggan DROP t gl l ahi r ;

5. Mengubah Nama Tabel Untuk mengubah nama suatu tabel, dapat menggunakan perintah SQL sbb :
>>RENAM TABLE pel anggan TO pl g; E >>ALTER TABLE pl g RENAM TO pel anggan; E

Perintah di atas akan mengubah tabel pelanggan menjadi plg dan sebaliknya. Menghapus TabelUntuk menghapus sebuah tabel, bentuk umum dari perintah SQL adalah sebagai berikut :
DROP TABLE nam a_t abel ;

Contohnya kita akan menghapus tabel dengan nama “pelanggan” maka perintah SQL-nya adalah :
DROP TABLE pel anggan;

Latihan DDL Pemodelan data konseptual Sistem Pemesanan (Penjualan) Barang.

Gambar 3.1 Pemodelan Konseptual

1. Buatkan database DBPenjualan! 2. Buatkan tabel pelanggan, tabel pesan, tabel produk, tabel kuitansi, tabel faktur dan tabel detail pesan! 3. Lakukan eksperimen dengan merubah struktur tabel. Bisa dengan menambahkan field, menambah index, merubah nama field, merubah nama tabel dan lain-lain.

/ * Tabl e st r uct ur e f or t abl e pel anggan * / DROP TABLE I F EXI STS pel anggan; CREATE TABLE pel anggan (

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 25 of 54

i d_pel anggan v ar c har ( 5) NOT NULL, nm _pel anggan v ar c har ( 40) NOT NULL, al am at t ex t NOT NULL, t el epon v ar c har ( 20) NOT NULL, em l v ar c har ( 50) NOT NULL, ai PRI M ARY KEY ( i d_pel anggan) ) ENGI NE=I nnoDB DEFAULT CHARSET=l at i n1 CHECKSUM =1 DELAY_KEY_W TE=1 ROW RI _FORM AT=DYNAM C; I

/ * Tabl e st r uct ur e f or t abl e pesan * / DROP TABLE I F EXI STS pes an; CREATE TABLE pes an ( i d_pes an i nt ( 5) NOT NULL aut o_i nc r em ent , i d_pel anggan v ar c har ( 5) NOT NULL, t gl _pes an dat e NOT NULL, PRI M ARY KEY ( i d_pes an) , KEY i d_pel anggan ( i d_pel anggan) , CONSTRAI NT pes an_i bf k _1 FOREI GN KEY ( i d_pel anggan) REFERENCES pel anggan ( i d_pel anggan) ) ENGI NE=I nnoDB AUTO_I NCREM ENT=4 DEFAULT CHARSET=l at i n1;

/ * Tabl e st r uct ur e f or t abl e det i l _pesan * / DROP TABLE I F EXI STS det i l _pes an; CREATE TABLE det i l _pes an ( i d_pes an i nt ( 5) NOT NULL, i d_pr oduk v ar c har ( 5) NOT NULL, j um ah i nt ( 5) NOT NULL def aul t ' 0' , l har ga dec i m ( 10, 0) NOT NULL def aul t ' 0' , al PRI M ARY KEY ( i d_pes an, i d_pr oduk ) , KEY FK_det i l _pes an ( i d_pr oduk ) , KEY i d_pes an ( i d_pes an) , CONSTRAI NT FK_det i l _pes an FOREI GN KEY ( i d_pr oduk ) REFERENCES pr oduk ( i d_pr oduk ) , CONSTRAI NT FK_det i l _pes an2 FOREI GN KEY ( i d_pes an) REFERENCES pes an ( i d_pes an) ) ENGI NE=I nnoDB DEFAULT CHARSET=l at i n1;

/ * Tabl e st r uct ur e f or t abl e pr oduk * / DROP TABLE I F EXI STS pr oduk ; CREATE TABLE pr oduk ( i d_pr oduk v ar c har ( 5) NOT NULL, nm _pr oduk v ar c har ( 30) NOT NULL, s at uan v ar c har ( 10) NOT NULL,

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 26 of 54

har ga dec i m ( 10, 0) NOT NULL def aul t ' 0' , al s t oc k i nt ( 3) NOT NULL def aul t ' 0' , PRI M ARY KEY ( i d_pr oduk ) ) ENGI NE=I nnoDB DEFAULT CHARSET=l at i n1;

/ * Tabl e st r uct ur e f or t abl e f akt ur * / DROP TABLE I F EXI STS f ak t ur ; CREATE TABLE f ak t ur ( i d_f ak t ur i nt ( 5) NOT NULL aut o_i nc r em ent , i d_pes an i nt ( 5) NOT NULL, t gl _f ak t ur dat e NOT NULL, PRI M ARY KEY ( i d_f ak t ur ) , KEY i d_pes an ( i d_pes an) , CONSTRAI NT f ak t ur _i bf k _1 FOREI GN KEY ( i d_pes an) REFERENCES pes an ( i d_pes an) ) ENGI NE=I nnoDB DEFAULT CHARSET=l at i n1;

/ * Tabl e st r uct ur e f or t abl e kui t ansi * / DROP TABLE I F EXI STS k ui t ans i ; CREATE TABLE k ui t ans i ( i d_k ui t ans i i nt ( 5) NOT NULL aut o_i nc r em ent , i d_f ak t ur i nt ( 5) NOT NULL, t gl _k ui t ans i dat e NOT NULL, PRI M ARY KEY ( i d_k ui t ans i ) , KEY FK_k ui t ans i ( i d_f ak t ur ) , CONSTRAI NT FK_k ui t ans i FOREI GN KEY ( i d_f ak t ur ) REFERENCES f ak t ur ( i d_f ak t ur ) ) ENGI NE=I nnoDB DEFAULT CHARSET=l at i n1;

Tugas 1. Cari contoh-contoh kode SQL untuk perintah DDL! 2. Buatlah diagram relasi tabel sesuai dengan kasus Tugas Akhir seperti pada gambar 3.1! 3. Buatlah databasenya dan buatkan tabel-tabelnya!

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 27 of 54

BAB IV DASAR DML SQL
Tujuan Kompetensi Khusus 1. Perintah DML Perintah DML DML atau Data Manipulation Language DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam DML antara lain :
   

SELECT INSERT UPDATE DELETE

Menambah Record dengan INSERT Bentuk umum perintah SQL untuk menambahkan record atau data ke dalam suatu tabel adalah sebagai berikut :
I NSERT I NTO nam a_t abel VALUES ( ‘ ni l ai 1’ , ’ ni l ai 2’ , . . . ) ;

atau dapat dengan bentuk sebagai berikut :
I NSERT I NTO nam a_t abel ( f i el d1, f i el d2, . . . ) VALUES ( ‘ ni l ai 1’ , ’ ni l ai 2’ , . . . ) ;

atau dapat juga dengan bentuk sebagai berikut :
I NSERT I NTO nam a_t abel SET f i el d1=’ ni l ai 1’ , f i el d2=’ ni l ai 2’ , . . . ;

Sebagai contoh, kita akan menambahkan sebuah record ke dalam tabel pelanggan yang telah kita buat sebelumnya. Berikut ini perintah SQL untuk menambahkan sebuah record ke dalam tabel pelanggan :
I NSERT I NTO pel anggan VALUES ( ' P0001' , ' Achm ad Sol i chi n' , ' Jakar t a Sel at an' , ' 0217327762' , ' achm i m gm l . com ) ; at @ ai '

Jika perintah SQL di atas berhasil dieksekusi maka akan ditampilkan pesan sebagai berikut :
Quer y OK, 1 r ow af f ect ed ( 0. 00 sec)

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 28 of 54

Setelah perintah SQL di atas berhasil dieksekusi, maka record atau data dalam tabel pelanggan akan bertambah. Jalankan perintah berikut ini untuk melihat isi tabel pelanggan !
SELECT * FROM pel anggan;

Dan berikut ini hasil dari perintah SQL di atas :
+- - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - +- - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - + | i d_pel anggan | nm _pel anggan | al am at | t el epon | em l | ai +- - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - +- - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - + | P0001 | Achm ad Sol i chi n | Jakar t a Sel at an | 0217327762 | achm i m gm l . com | at @ ai +- - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - +- - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - +

1 r ow i n set ( 0. 00 sec)

Latihan 1. Buatlah kode SQL untuk proses insert Pelanggan, Pesan, Produk, Kuitansi, Faktur, Detail_Pesan! (M inimal 5 buah data per tabel) Mengedit Record dengan UPDATE Bentuk umum perintah SQL untuk mengedit suatu record atau data dari suatu tabel adalah sebagai berikut :
UPDATE nam a_t abel SET f i el d1=’ ni l ai bar u’ [ W HERE k ondi s i ] ;

Perhatikan beberapa contoh perintah UPDATE tabel pelanggan berikut ini ! 1. Mengubah alamat menjadi “Tangerang” untuk pelanggan yang mempunyai id‘P0001’
UPDATE pel anggan SET al am =' Tanger ang' W at HERE i d_pel anggan=' P0001' ;

Dan jika query di atas berhasil dieksekusi maka akan ditampilkan hasil sebagai berikut :
Quer y OK, 1 r ow af f ect ed ( 0. 27 sec) Rows m ched: 1 Changed: 1 W ni ngs: 0 at ar

2. Mengubah email menjadi “budi@luhur.com” dan alamat menjadi “Bandung”untuk pelanggan yang mempunyai id_pelanggan ‘P0002’
UPDATE pel anggan SET em l =' budi @ uhur . com , al am =' Bandung' W ai l ' at HERE i d_pel anggan=' P0002' ;

Latihan 1. Buatlah kode SQL untuk proses UPDATE dengan berbagai macam kriteria (lakukanlah eksperimen) Menghapus Record dengan DELETE Bentuk umum perintah SQL untuk menghapus suatu record atau data dari tabel adalah sebagai berikut :
DELETE FROM nam a_t abel [ W HERE k ondi s i ] ;

Pada perintah untuk delete di atas :
  

DELETE FROM merupakan perintah dasar untuk menghapus suatu recorddari tabel. nama_tabel merupakan nama tabel yang akan dihapus recordnya. Perintah WHERE diikuti oleh kondisi tertentu yang menentukan record mana yang akan dihapus (didelete). Perintah WHERE ini boleh ada boleh juga tidak.

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 29 of 54

Perhatikan beberapa contoh perintah DELETE dari tabel pelanggan berikut ini ! 1. Menghapus data pelanggan yang mempunyai id_pelanggan P0005
DELETE FROM pel anggan W HERE i d_pel anggan=' P0005' ;

Dan jika query di atas berhasil dieksekusi dan record yang akan dihapus ada,maka akan ditampilkan hasil sebagai berikut :
Quer y OK, 1 r ow af f ect ed ( 0. 11 sec)

2. Menghapus semua pelanggan yang beralamat di “Bandung”
DELETE FROM pel anggan W HERE al am =' Bandung' ; at

Latihan 1. Buatlah kode SQL untuk proses DELETE dengan berbagai macam kriteria (lakukanlah eksperimen)

Menampilkan Record dengan SELECT Perintah SELECT digunakan untuk membaca informasi dari tabel. Bentuk dasar perintah SELECT data dari tabel adalah sebagai berikut :
SELECT [ f i el d | * ] FROM nam a_t abel [ W HERE k ondi s i ] ;

SELECT semua data :
SELECT * FROM PESAN;

Perintah SELECT ini berfungsi jika membaca seluruh data dari dalam tabel.

SELECT beberapa record :
SELECT * FROM PESAN W HERE I D_PELANGGAN = ‘ 11001’

Kita dapat menampilkan hanya beberapa data saja dari sebuah tabel. Field yang bisa dijadikan sebuah kriteria bisa apa saja. Contoh lain :
SELECT * FROM PESAN W HERE TGL_PESAN = ‘ 2011- 3- 2’

Dengan struktur = TAHUN-BULAN-TANGGAL Contoh lain :
SELECT * FROM PESAN W HERE TGL_PESAN >‘ 2011- 3- 2’ AND TGL_PESAN <‘ 2011- 4- 1’

Contoh lain yang mengkombinasikan beberapa Field
SELECT * FROM PRODUK W HERE SATUAN = ‘ PCS’ AND HARGA >5000

Contoh lain menggunakan operator logika AND dan OR

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 30 of 54

SELECT * FROM PRODUK W HERE HARGA > 1000 OR STOCK > 10

Contoh lain menggunakan operator logika AND dan OR yang dikombinasikan
SELECT * FROM PRODUK W HERE ( SATUAN = ‘ BUAH’ AND STOCK > 10) OR ( HARGA > 5000 AND STOCK < 5)

SELECT beberapa kolom/field

Jika kita hanya ingin melihat informasi tertentu dari sebuah tabel maka tinggal memilih kolom tertentu yang akan dibaca dan dipisahkan menggunakan koma.

Contoh memilih nama produk dan harganya
SELECT NM _PRODUK, HARGA FROM PRODUK

Contoh lain
SELECT NM _PELANGGAN, ALAM AT FROM PELANGGAN

Contoh lain, jika kita ingin menampilkan nama pelanggan yang sama hanya satu kali saja :
SELECT DI STI NCT NM _PELANGGAN FROM PELANGGAN

Kita dapat mengkombinasikan perintah SELECT beberapa kolom dengan SELECT beberapa record
SELECT NM _PELANGGAN, ALAM AT W HERE ALAM AT = ‘ BANDUNG’ OR ALAM AT = ‘ J AKARTA’

Latihan 1. 2. 3. 4. Buatlah perintah untuk menampilkan produk yang tersedia Buatlah perintah untuk menampilkan nama pelanggan dan emailnya Buatlah perintah yang mengkombinasikan ekspresi AND dan OR Lakukanlah eksperimen dengan untuk membaca data dari tabel dengan berbagai kombinasi perintah

Mengurutkan record Pada latihan sebelumnya, semua record yang dihasilkan dari perintah SELECT tidak berurutan. Kita dapat mengurutkan data hasil perintah SELECT

Contoh, PESAN diurutkan berdasarkan tanggal pesan
SELECT * FROM PESAN ORDER BY TGL_PESAN

Metode sorting dapat dilakukan secara ascending atau desceinding
SELECT * FROM PESAN ORDER BY TGL_PESAN DESC

Juga dapat diurut berdasarkan lebih dari satu kriteria
SELECT * FROM PESAN ORDER BY I D_PELANGGAN, TGL_PESAN

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 31 of 54

Latihan Buatlah perintah beberapa macam perintah untuk membaca data dengan menggunakan metode pengurutan data ASCENDING dan DESCENDING Pattern MySQL menyediakan pola standar untuk proses pembacaan data berdasarkan ekspresi tertentu. Gunakan perintah LIKE atau NOT LIKE

Contoh : mencari nama pelanggan dengan huruf awal ‘A’
SELECT * FROM PELANGGAN W HERE NM _PELANGGAN LI KE ‘ A% ’

Contoh : mencari nama pelanggan dengan akhiran ‘DI’
SELECT * FROM PELANGGAN W HERE NM _PELANGGAN LI KE ‘ % ’ DI

Contoh : mencari nama pelanggan yang mengandung kata ‘K’
SELECT * FROM PELANGGAN W HERE NM _PELANGGAN LI KE ‘ % ’ K%

Contoh : mencari nama pelanggan yang namanya terdiri dari 5 karakter
SELECT * FROM PELANGGAN W HERE NM _PELANGGAN LI KE ‘ _____’

Gunakan underscore sebanyak 5 kali

Latihan Buatlah perintah SQL untuk membaca data dengan menggunakan ekspresi LIKE dan NOT LIKE Menghitung jumlah Record Kadang-kadang kita membutuhkan informasi mengenai jumlah record yang terdapat dalam satu buah tabel. Perintahnya adalah sebagai berikut
SELECT COUNT( * ) FROM PELANGGAN

Contoh : mengetahui jumlah pelanggan yang beralamat di Bandung
SELECT ALAM AT, COUNT( * ) FROM PELANGGAN GROUP BY ALAM AT

Contoh : menghitung jumlah produk yang memiliki satuan tertentu
SELECT SATUAN, COUNT( * ) FROM PRODUK W HERE SATUAN = ‘ PCS’ OR SATUAN = ‘ LEM BAR’ GROUP BY SATUAN

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 32 of 54

Tugas 1. Buat kode SQL untuk mengisi beberapa buah record kedalam satu tabel dengan hanya satu perintah kode SQL 2. Buat kode SQL untuk meng-UPDATE data dengan kriteria minimal 2 buah (Anda dapat menggunakan AND atau OR untuk kedua kriteria tersebut) 3. Buat kode SQL untuk men-DELETE data dengan kriteria minimal 2 buah (Anda dapat menggunakan AND atau OR untuk kedua kriteria tersebut) 4. Buat 5 jenis kode SQL SELECT yang berbeda (Anda dapat mengkombinasikan berbagai kriteria, teknik pengurutan, Pattern dan Perhitungan jumlah record)

BAB V DML SQL LANJUT
Tujuan Kompetensi Khusus 1. Perintah Inner Join Tabel 2. Perintah Outer Join Tabel 3. Perintah HAVING Perintah SELECT dari Banyak Tabel dengan JOIN Di dalam suatu RDBMS tentunya sudah menjadi suatu kewajaran jika dalam satu database dapat terdiri dari beberapa tabel. Masing-masing tabel tersebut berhubungan satu sama lain atau dengan kata lain memiliki relasi. Relasi antartabel dapat berupa relasi 1-1, 1-M, atau M-N. Sebagai contoh terlihat pada gambar pemodelan data konseptual (class diagram) di atas. Tabel pelangganberhubungan dengan pesan, pesan dengan barang, dsb. Inner Join Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi). Cara 1 : Penggabungan dengan WHERE Bentuk umum SELECT tabel1.*, tabel2.* FROM tabel1, tabel2 WHERE tabel1.PK=tabel2.FK; Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pel anggan. i d_pel anggan, pel anggan. nm _pel anggan, pes an. i d_pes an, pes an. t gl _pes an FROM pel anggan, pes an W HERE pel anggan. i d_pel anggan=pes an. i d_pel anggan;

Cara 2 : Penggabungan dengan INNER JOIN Bentuk umum

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 33 of 54

SELECT t abel 1. * , t abel 2. * FROM t abel 1 I NNER JOI N t abel 2 ON t abel 1. PK=t abel 2. FK;

Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pel anggan. i d_pel anggan, pel anggan. nm _pel anggan, pes an. i d_pes an, pes an. t gl _pes an FROM pel anggan I NNER JOI N pes an ON pel anggan. i d_pel anggan=pes an. i d_pel anggan;

Contoh lain :
SELECT pes an. i d_pes an, pes an. i d_pel anggan, det i l _pes an. i d_pr oduk , det i l _pes an. j um ah l FROM det i l _pes an I NNER J OI N pes an ON ( det i l _pes an. i d_pes an = pes an. i d_pes an)

Contoh lain :
SELECT pes an. i d_pes an, pes an. i d_pel anggan, pes an. t gl _pes an, f ak t ur . i d_f ak t ur , f ak t ur . t gl _f ak t ur FROM f ak t ur I NNER J OI N pes an ON ( f ak t ur . i d_pes an = pes an. i d_pes an)

Contoh lain :
SELECT f ak t ur . i d_f ak t ur , f ak t ur . t gl _f ak t ur , kui t ans i . i d_k ui t ans i , kui t ans i . t gl _k ui t ans i FROM kui t ans i I NNER J OI N f ak t ur ON ( k ui t ans i . i d_f ak t ur = f ak t ur . i d_f ak t ur )

Contoh menggunakan tiga buah tabel
SELECT pes an. i d_pes an,

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 34 of 54

pes an. t gl _pes an, pr oduk . nm _pr oduk , pr oduk . har ga, det i l _pes an. j um ah l FROM det i l _pes an I NNER J OI N pes an ON ( det i l _pes an. i d_pes an = pes an. i d_pes an) I NNER J OI N pr oduk ON ( det i l _pes an. i d_pr oduk = pr oduk . i d_pr oduk )

Contoh lain :
SELECT pes an. i d_pes an, pel anggan. nm _pel anggan, pel anggan. t el epon, pes an. t gl _pes an, det i l _pes an. j um ah l FROM det i l _pes an I NNER J OI N pes an ON ( det i l _pes an. i d_pes an = pes an. i d_pes an) I NNER J OI N pel anggan ON ( pes an. i d_pel anggan = pel anggan. i d_pel anggan)

Contoh lain :
SELECT pes an. i d_pes an, f ak t ur . i d_f ak t ur , kui t ans i . i d_k ui t ans i , f ak t ur . t gl _f ak t ur , kui t ans i . t gl _k ui t ans i FROM kui t ans i I NNER J OI N f ak t ur ON ( k ui t ans i . i d_f ak t ur = f ak t ur . i d_f ak t ur ) I NNER J OI N pes an ON ( f ak t ur . i d_pes an = pes an. i d_pes an)

Contoh : perintah INNER JOIN dengan sebuah kriteria
SELECT pel anggan. nm _pel anggan, pel anggan. t el epon, pes an. t gl _pes an FROM pes an I NNER J OI N pel anggan ON ( pes an. i d_pel anggan = pel anggan. i d_pel anggan)

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 35 of 54

W HERE pes an. t gl _pes an > ' 2011- 3- 3'

Latihan 1. Buatlah kode SQL yang berbeda yang meng-QUERY data dari 2 tabel 2. Tambahkanlah pada kode tersebut berupa kriteria 3. Tambahkanlah kriterianya lebih dari satu buah (dapat menggunakan AND dan OR) OUTER JOIN Dengan outer join, tabel akan digabungkan satu arah, sehingga memungkinkan ada data yang NULL (kosong) di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi). Outer Join terbagi menjadi 2 (dua) yaitu LEFT JOIN dan RIGHT. Berikut ini bentuk umum dan contohnya: LEFT JOIN Bentuk umum
SELECT t abel 1. * , t abel 2. * FROM t abel 1 LEFT JOI N t abel 2 ON t abel 1. PK=t abel 2. FK;

Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pel anggan. i d_pel anggan, pel anggan. nm _pel anggan, pesan. i d_pesan, pesan. t gl _pesan FROM pel anggan LEFT JOI N pesan ON pel anggan. i d_pel anggan=pesan. i d_pel anggan;

Berbeda dengan hasil sebelumnya (inner join), penggunaan left join akan menampilkan juga data pelanggan dengan id P0003, walaupun pelanggan tersebut belum pernah bertransaksi. Dan pada kolom id_pesan dan tgl_pesan untuk pelanggan P0003 isinya NULL, artinya di tabel kanan (pesan) pelanggan tersebut tidak ada. RIGHT JOIN Bentuk umum
SELECT t abel 1. * , t abel 2. * FROM t abel 1 RI GHT JOI N t abel 2 ON t abel 1. PK=t abel 2. FK;

Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pel anggan. i d_pel anggan, pel anggan. nm _pel anggan, pesan. i d_pesan, pesan. t gl _pesan FROM pel anggan RI GHT JOI N pesan ON pel anggan. i d_pel anggan=pesan. i d_pel anggan;

Dengan right join, tabel yang menjadi acuan adalah tabel sebelah kanan (tabel pesan), jadi semua isi tabel pesan akan ditampilkan. Jika data pelanggan tidak ada di tabel pelanggan, maka isi tabel pesan tetap ditampilkan. Pengelompokkan Hasil Query dengan GROUP BY Hasil query terkadang perlu dikelompokkan berdasarkan kriteria atau kondisi tertentu. Misalnya kita akan menampilkan jumlah barang yang dibeli untuk masing-masing transaksi (pemesanan). Perhatikan perintah query berikut ini dan lihat hasilnya:

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 36 of 54

SELECT pesan. i d_pesan, pesan. t gl _pesan, det i l _pesan. j um ah l FROM pesan, det i l _pesan W HERE pesan. i d_pesan=det i l _pesan. i d_pesan;

Jika kita perhatikan hasil perintah query di atas, kita akan mendapatkan jumlah barang yang terjadi untuk setiap transaksi, namun hasil tampilannya masih per-barang. Artinya jumlah yang ditampilkan masih berupa jumlah barang untuk masing-masing barang. Agar jumlah barang ditampilkan per-transaksi (pemesanan), maka kita dapat menggunakan fungsi GROUP BY dan juga SUM untuk menjumlahkan jumlah barang. Berikut ini perintah query dengan group by dan count.
SELECT pesan. i d_pesan, pesan. t gl _pesan, SUM det i l _pesan. j um ah) as j um ah ( l l FROM pesan, det i l _pesan W HERE pesan. i d_pesan=det i l _pesan. i d_pesan GROUP BY i d_pesan;

Selain hasil di atas, kita juga dapat menggunakan tambahan WITH ROLLUP di belakang group by untuk menampilkan jumlah total seluruh barang. Berikut ini perintah query dan hasilnya:
SELECT pesan. i d_pesan, pesan. t gl _pesan, SUM det i l _pesan. j um ah) as j um ah ( l l FROM pesan, det i l _pesan W HERE pesan. i d_pesan=det i l _pesan. i d_pesan GROUP BY i d_pesan W TH ROLLUP; I

HAVING

Perintah query berikut ini akan menampilkan jumlah item (jenis) barang untuk tiap transaksi.
SELECT pesan. i d_pesan, COUNT( det i l _pesan. i d_pr oduk) as j um ah l FROM pesan, det i l _pesan W HERE pesan. i d_pesan=det i l _pesan. i d_pesan GROUP BY pesan. i d_pesan

Dari hasil query di atas tampak bahwa ditampilkan jumlah item barang untuk semua transaksi. Selanjutnya bagaimana jika kita ingin hanya menampilkan data yang jumlah item barangnya lebih dari 2 (dua)? Mungkin kita langsung berfikir untuk menggunakan WHERE seperti perintah query sebagai berikut:
SELECT pesan. i d_pesan, COUNT( det i l _pesan. i d_pr oduk) as j um ah l FROM pesan, det i l _pesan W HERE pesan. i d_pesan=det i l _pesan. i d_pesan AND j um ah > 2 l GROUP BY pesan. i d_pesan

Hal tersebut terjadi karena kondisi dalam WHERE tidak dapat diterapkan pada fungsi agregrasi seperti COUNT, SUM, AVG dll. Untuk menyeleksi suatu fungsi agregasi, kita tidak dapat menggunakan WHERE, namun kita dapat menggunakan HAVING. Berikut ini perintah query yang menggunakan HAVING:
SELECT pesan. i d_pesan, COUNT( det i l _pesan. i d_pr oduk) as j um ah l FROM pesan, det i l _pesan W HERE pesan. i d_pesan=det i l _pesan. i d_pesan GROUP BY pesan. i d_pesan HAVI NG j um ah > 2 l

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 37 of 54

SubSELECT Perintah SubSELECT memiliki banyak variasi. Berikut ini beberapa variasi bentuk perintah SubSELECT.
SELECT . . . W HERE col =[ ANY| ALL] ( SELECT . . . ) ; SELECT . . . W HERE col [ NOT] I N ( SELECT . . . ) ; SELECT ROW val 1, val 2, . . ) =[ ANY] ( SELECT col 1, col 2, . . ) ; ( SELECT . . . W HERE col = [ NOT] EXI STS ( SELECT . . . ) ; SELECT . . . FROM ( SELECT . . . ) AS nam W e HERE . . . ;

Dan berikut ini beberapa contoh perintah query yang menggunakan SubSELECT.

• Menampilkan daftar pelanggan yang pernah melakukan transaksi(pemesanan).
SELECT i d_pel anggan, nm _pel anggan FROM pel anggan W HERE i d_pel anggan I N ( SELECT i d_pel anggan FROM pesan) ;

Menampilkan data pemesanan dengan jumlah barang terbanyak.
SELECT i d_pesan, j um ah FROM det i l _pesan l W HERE j um ah = ( SELECT M l AX( j um ah) FROM det i l _pesan) ; l

BAB VI FUNGSI-FUNGSI MYSQL

Tujuan Kompetensi Khusus 1. 2. 3. 4. Fungsi String Fungsi Tanggal dan Waktu Fungsi Numerik Fungsi Lainnya

Fungsi String MySQL memiliki banyak sekali fungsi yang berhubungan dengan operasi String. Berikut ini beberapa fungsi string yang disediakan MySQL.
CONCAT ( st r 1, st r 2, . . . )

Fungsi ini digunakan untuk menggabungkan dua atau lebih string (kolom). Sebagai contoh, misalnya akan menggabungkan kolom alamat dan telepon pada tabel pelanggan menjadi sebuah kolom:
SELECT nm _pel anggan, CONCAT( al am , ' ' , t el epon) at FROM pel anggan;

CONCAT_WS (separator, str1, str2, ...) Fungsi ini digunakan untuk menggabungkan dua atau lebih string (kolom) dengan separator diantara masing-masing string. Contoh:
SELECT CONCAT_W ( ' , ' , ' Adi ' , ' I da' , ' Edi ' ) ; S

SUBSTR (string, awal, panjang) SUBSTRING (string, awal, panjang) SUBSTRING (string FROM awal FOR panjang)

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 38 of 54

MID (string, awal, panjang) Fungsi ini digunakan untuk mengambil atau memotong string dimulai dari karakter awal sebanyak panjang karakter. Sebagai catatan bahwa di MySQL, index string dimulai dengan 1, bukan 0. Contoh:
SELECT SUBSTRI NG ( ' Budi Luhur ' , 1, 4) ;

Hasil keluarannya:
Budi

LENGTH (string) OCTET_LENGTH (string) CHAR_LENGTH (string) CHARACTER_LENGTH (string) Fungsi ini digunakan untuk menghitung panjang suatu string. Contoh:
SELECT LENGTH ( ' Budi Luhur ' ) ;

Hasil keluarannya:
5

LEFT (string, panjang) Fungsi ini digunakan untuk memotong string dari sebelah kiri sebanyak panjang karakter. Contoh:
SELECT LEFT ( ' Budi Luhur ' , 4) ;

Hasil keluarannya:
Budi

RIGHT (string, panjang) Fungsi ini digunakan untuk memotong string dari sebelah kanan sebanyak panjang karakter. Contoh:
SELECT RI GHT ( ' Budi Luhur ' , 4) ;

Hasil keluarannya:
Uhur

LTRIM (string) Fungsi ini digunakan untuk menghilangkan spasi di awal string (kiri). Contoh:
SELECT LTRI M ( ' Budi Luhur ' ) ;

Hasil keluarannya:
Budi Luhur

RTRIM (string) Fungsi ini digunakan untuk menghilangkan spasi di akhir string (kanan). Contoh:
SELECT RTRI M ( ' Budi Luhur ' ) ;

Hasil keluarannya:
Budi Luhur

TRIM (string) Fungsi ini digunakan untuk menghilangkan spasi di awal dan akhir string (kiri dan kanan). Contoh:

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 39 of 54

SELECT TRI M ( ' Budi Luhur ' ) ;

Hasil keluarannya:
Budi Luhur

REPLACE (string, from_str, to_str) Fungsi ini digunakan untuk mengganti suatu string dengan string yang lain. Contoh:
SELECT REPLACE ( ' www. m ysql . com , ' w' , ' x' ) ; '

Hasil keluarannya:
xxx. m ysql . com

REPEAT (string, jumlah) Fungsi ini digunakan untuk menduplikasi suatu string sebanyak jumlah. Contoh:
SELECT REPEAT ( ' M ont ' , 3) ;

Hasil keluarannya:
M ont M ont M ont

REVERSE (string) Fungsi ini digunakan untuk membalik string. Contoh:
SELECT REVERSE ( ' m ysql . com ) ; '

LCASE (string) LOWER (string) Fungsi ini digunakan untuk mengubah string menjadi huruf kecil (lowercase). Contoh:
SELECT LOW ( ' M ER ySQL' ) ;

Hasil keluarannya:
M ysql

UCASE (string) UPPER (string) Fungsi ini digunakan untuk mengubah string menjadi huruf kapital (uppercase). Contoh:
SELECT UPPER ( ' m ysql ' ) ;

Hasil keluarannya:
M YSQL

Fungsi Tanggal dan Waktu Selain fungsi string, MySQL juga memiliki fungsi-fungsi yang berhubungan dengan operasi tanggal dan waktu (date and time). Berikut ini beberapa fungsi tanggal dan waktu yang disediakan MySQL. NOW () SYSDATE() Fungsi ini digunakan untuk mendapatkan tanggal dan waktu system sekarang Contoh:
SELECT NOW ) ; (

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 40 of 54

Hasil keluarannya:
2008- 02- 19 20: 00: 31

MONTH (tanggal) Fungsi ini digunakan untuk mendapatkan urutan bulan (integer) dari suatu tanggal yang diberikan dalam setahun, dimana 1=Januari, 2=Februari, dst. Contoh:
SELECT M ONTH ( ‘ 1982- 06- 05’ ) ;

Hasil keluarannya:
6

WEEK (tanggal) Fungsi ini digunakan untuk mendapatkan urutan minggu (integer) dari suatu tanggal yang diberikan dalam setahun. Contoh:
SELECT W EEK ( ‘ 1982- 06- 05’ ) ;

Hasil keluarannya:
22

YEAR (tanggal) Fungsi ini digunakan untuk mendapatkan bilangan tahun dari suatu tanggal yang diberikan. Contoh:
SELECT YEAR ( now( ) ) ;

HOUR (waktu) Fungsi ini digunakan untuk mendapatkan bilangan jam dari suatu parameter waktu yang diberikan. Contoh:
SELECT HOUR ( now( ) ) ;

Hasil keluarannya:
20

MINUTE (waktu) Fungsi ini digunakan untuk mendapatkan bilangan menit dari suatu parameter waktu yang diberikan. Contoh:
SELECT M NUTE ( now( ) ) ; I

Hasil keluarannya:
8

SECOND (waktu) Fungsi ini digunakan untuk mendapatkan bilangan detik dari suatu waktu yang diberikan. Contoh:
SELECT SECOND ( now( ) ) ;

Hasil keluarannya:
53

DATE_ADD(date,INTERVAL expr type) DATE_SUB(date,INTERVAL expr type) ADDDATE(date,INTERVAL expr type) SUBDATE(date,INTERVAL expr type)

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 41 of 54

Fungsi-fungsi diatas digunakan untuk menambah suatu tanggal. Contoh:
SELECT DATE_ADD( now( ) , I NTERVAL 1 DAY) ;

Hasil keluarannya:
2011- 02- 20 20: 12: 17

DATE_FORMAT(date, format) Fungsi ini digunakan untuk mem-format tampilan tanggal. TIME_FORMAT(time, format) Fungsi ini digunakan untuk mem-format tampilan waktu. Berikut ini format tampilan tanggal dan waktu, dan penggunaannya: %M : Nama bulan (January ... December) %W : Nama hari dalam seminggu (Sunday...Saturday) %D : Urutan hari dalam sebulan %Y : Tahun, 4 digit %y : Tahun, 2 digit %a : Nama hari dalam seminggu (Sun...Saturday) %H : Jam, dalam format 24. %i : Menit, 00-59 %s : Detik, 00-59
SELECT DATE_FORM AT ( now( ) , ' % % - % % % : % ) ; d- M Y H: i s'

Fungsi Numerik MySQL memiliki fungsi-fungsi yang berhubungan dengan operasi numerik, berikut ini contohnya: OPERASI ARITMATIKA Operasi aritmatika dalam MySQL terdiri dari: + : Pertambahan - : Pengurangan * : Perkalian / : Pembagian % : Sisa hasil bagi, modulus

Contoh penggunaan:
SELECT 10+20;

Hasil keluarannya:
30

SELECT 10/ 3;

Hasil keluarannya:

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 42 of 54

3. 3333

ABS(x) Fungsi digunakan untuk mengambil nilai absolut dari bilangan x. Contoh:
SELECT ABS( - 20) ;

Hasil keluarannya:
20

MOD(m, n) Fungsi digunakan untuk mengoperasikan m modulus n. Contoh:
SELECT M OD( 10, 3) ;

Hasil keluarannya:1 FLOOR(x) Fungsi digunakan untuk mengambil nilai integer terbesar yang tidak lebih besar dari x. Contoh:
SELECT FLOOR( 10. 3576) ;

Hasil keluarannya:
10

CEILING(x) Fungsi digunakan untuk mengambil nilai integer terkecil yang tidak lebih kecil dari x. Contoh:
SELECT CEI LI NG( 10. 3576) ;

Hasil keluarannya:
11

ROUND(x) ROUND(x, d) Fungsi digunakan untuk melakukan pembulatan bilangan x sebanyak d tempat presisi. Contoh:
SELECT ROUND( 10. 3576, 2) ;

Hasil keluarannya:
10. 36

POW(x) POWER(x, n) Fungsi digunakan untuk melakukan mengambil hasil pemangkatan dari xn Contoh:
SELECT POW 2, 10) ; (

Hasil keluarannya:
1024

RAND() RAND(x) Fungsi digunakan untuk mengambil nilai random diantara 0 s/d 1.0. Contoh:

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 43 of 54

SELECT RAND( ) ;

Hasil keluarannya:
0. 96589817662341

TRUNCATE(x, d) Fungsi digunakan untuk memotong bilangan x sepanjang d tempat desimal. Contoh:
SELECT TRUNCATE( 10. 28372, 1) ;

Hasil keluarannya:
10. 2

Fungsi Lainnya Selain fungsi yang berhubungan dengan string, date-and-time, dan numeric MySQL juga memiliki fungsi-fungsi khusus, diantaranya : GREATEST(nil1, nil2, ...) Fungsi digunakan untuk mengambil nilai terbesar dari suatu kumpulan nilai. Contoh:
SELECT GREATEST( 2, 5, 2, 6, 3, 7, 4, 2, 5, 1) ;

Hasil keluarannya:
7

COUNT(range) Fungsi digunakan untuk mengambil jumlah baris dari suatu query. Contoh:
SELECT COUNT( * ) FROM pel anggan;

Hasil keluarannya:
5

MAX(range) Fungsi digunakan untuk mengambil nilai terbesar dari suatu ekspresi (query). Contoh:
SELECT M AX( ni l ai ) FROM ni l ai _uj i an;

MIN(range) Fungsi digunakan untuk mengambil nilai terkecil dari suatu ekspresi (query). Contoh:
SELECT M N( ni l ai ) FROM ni l ai _uj i an; I

Hasil keluarannya:
40

SUM(range) Fungsi digunakan untuk menjumlahkan total nilai dari suatu ekspresi (query). Contoh:
SELECT SUM ni l ai ) FROM ni l ai _uj i an; (

Hasil keluarannya:
450

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 44 of 54

AVG(range) Fungsi digunakan untuk menghitung rata-rata nilai dari suatu ekspresi (query). Contoh:
SELECT AVG( ni l ai ) FROM ni l ai _uj i an;

Hasil keluarannya:
78

DATABASE() Fungsi digunakan untuk mengambil nama database yang sedang aktif (terbuka). Contoh:
SELECT DATABASE( ) ;

Hasil keluarannya:
Penj ual an

USER() SYSTEM_USER() SESSION_USER() Fungsi digunakan untuk mengambil user yang sedang digunakan (aktif). Contoh:
SELECT USER( ) ;

Hasil keluarannya:
r oot @ ocal host l

PASSWORD(str) Fungsi digunakan untuk melakukan enkripsi suatu string. Sifat utama dari fungsi password() ini adalah hasilnya selalu sama untuk setiap string yang sama. String hasil dari fungsi password() tidak dapat di-decript (decode). Biasanya fungsi ini digunakan untuk menyimpan password login. Contoh:
SELECT PASSW ORD( ' qwer t y' ) ;

Hasil keluarannya:
* AA1420F182E88B9E5F874F6FBE7459291E8F4601

ENCODE(str, pass) Fungsi digunakan untuk melakukan enkripsi suatu string str menggunakan password atau key pass. Contoh:
SELECT ENCODE( ' qwer t y' , ' passwor d' ) ;

Hasil keluarannya:
câ┬♠e|

DECODE(encripted_str, pass) Fungsi digunakan untuk melakukan dekripsi suatu string encripted_str menggunakan password atau key pass. Jika passwordnya benar, makastring aslinya akan benar. Contoh:
SELECT DECODE( ' câ┬♠e| ' , ' passwor d' ) ;

Hasil keluarannya:
Qwer t y

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 45 of 54

Contoh dengan password salah:
SELECT DECODE( ' câ┬♠e| ' , ' ngasal ' ) ;

Hasil keluarannya:
W PH: kΦ

MD5(str) Fungsi digunakan untuk melakukan enkripsi suatu string str menggunakan metode md5. Fungsi ini juga tidak dapat didekripsi. Contoh:
SELECT M D5( ' qwer t y' ) ;

Hasil keluarannya:
d8578edf 8458ce06f bc5bb76a58c5ca4

LAST_INSERT_ID() Fungsi digunakan untuk mengambil id terakhir dalam proses insert dimana tabelnya mengandung field yang bersifat AUTO INCREMENT. Contoh:
SELECT LAST_I NSERT_I D( ) ;

Hasil keluarannya:
231

VERSION() Fungsi digunakan untuk mengambil versi MySQL yang digunakan. Contoh:
SELECT VERSI ON( ) ;

Hasil keluarannya:
5. 0. 45- com uni t y- nt m

BAB VII VIEW
Tujuan Kompetensi Khusus 1. Create view 2. Alter view 3. Drop view View View adalah tabel virtual, yang beroperasi layaknya tabel tetapi tidak berisikan data. View adalah hasil dari perintah SELECT. View tediri dari

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 46 of 54

kolom dan baris dari satu atau lebih tabel. View adalah QUERY yang disimpan menjadi sebuah objek. Dengan menggunakan View kita dapat memastikan keamanan data dengan menerapkan pembatasan pada pengaksesan data seperti di bawah ini: 1. 2. 3. 4. 5. 6. Kolom/Field pada tabel tertentu. Baris/Record pada tabel tertentu. Field dan Record pada tabel tertentu. Turunan dari view lain. Record menggunakan operasi join. Data statistik dari tabel.

Create View Perintah CREATE VIEW digunakan untuk membuat sebuah view pada sebuah database. Syntak membuat view :
CREATE VI EW vi ew_nam ( col um e[ n_l i st ) ] [ W TH ENCRYPTI ON] AS sel ect _st at em I ent [ W TH CHECK OPTI ON] I

View_name adalah nama view yang akan dibuat. Column_list mendefinisikan field yang akan digunakan dalam view. Column_list harus memiliki jumlah field yang sama dengan yang didefinisikan pada select_statement. Jika column_list tidak ada maka view dibuat berdasarkan field yang didefinisikan pada select_statement. With Encryption adalah opsi untuk menambahkan enkripsi pada view. AS berisi perintah yang digunakan untuk membuat view.

Contoh Cara membaca data pada sebuah tabel
SELECT * FROM PELANGGAN

SELECT * FROM PRODUCT

Create view statement
CREATE VI EW V_PELANGGAN AS SELECT * FROM PELANGGAN

Cara memanggil view :
SELECT * FROM V_PELANGGAN

Kita dapat memfilter data hasil dari pemanggilan VIEW menggunakan klausa WHERE
SELECT * FROM V_PELANGGAN W HERE ALAM AT = ‘ BANDUNG’

Alter view statement Dengan menggunakan ALTER VIEW kita dapat merubah definisi dari sebuah view. Perintah ini digunakan untuk merubah VIEW tanpa harus menghapusnya dan membuat yang baru. Syntak ALTER VIEW hampir sama dengan syntak CREATE VIEW. Syntak merubah view :
ALTER VI EW vi ew_nam ( col um e[ n_l i st ) ] [ W TH ENCRYPTI ON] AS sel ect _st at em I ent [ W TH CHECK OPTI ON] I

ALTER VI EW V_PELANGGAN AS SELECT * FROM PELANGGAN W HERE ALAM AT =’ BANDUNG’

Cara memanggil view :
SELECT * FROM V_PELANGGAN

Drop view statement Untuk menghapus objek view, dapat digunakan perintah DROP VIEW. Ketika VIEW dihapus maka tidak akan berpengaruh pada tabel referensi

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 47 of 54

untuk view yang dibuat. Dengan menghapus tabel yang digunakan untuk referensi objek view tidak akan menghapus objek VIEW. Objek view harus dihapus secara eksplisit. Syntak untuk menghapus view :
DROP VI EW vi ew_nam e

Contoh:
DROP VI EW V_PELANGGAN

Latihan 1. 2. 3. 4. Buat view untuk menampilkan data produk! Buat view untuk menampilkan data pesan dan pelanggan menggunakan perintah join! Modifikasi kedua view yang telah dibuat tersebut! Hapus kedua view tersebut!

BAB VIII STORED PROCEDURE DAN FUNCTION
Tujuan Kompetensi Khusus 1. Membuat procedure 2. Memodifikasi procedure 3. Membuat function Function dan Stored Procedure merupakan fitur utama yang paling pentingdi MySQL 5. Function dan Stored Procedure merupakan suatu kumpulan perintah atau statement yang disimpan dan dieksekusi di server database MySQL. Dengan SP (Stored Procedure), kita dapat menyusun program sederhana berbasis sintaks SQL untuk menjalankan fungsi tertentu. Hal ini menjadikan aplikasi yang kita buat lebih efektif dan efisien. Berikut ini beberapa keuntungan menggunakan Stored Procedure:

Lebih cepat. Hal ini karena kumpulan perintah query dijalankan langsung diserver. Berbeda dengan jika dijalankan secara sekuensial di bahasapemrograman, akan lebih lambat karena harus “bolak-balik” antara client danserver. Menghilangkan duplikasi proses, pemeliharaan yang mudah. Padadasarnya operasi yang terjadi di suatu aplikasi terhadap database adalahsama. Secara umum, di dalam aplikasi biasanya terdapat operasi untukvalidasi data inputan, menambahkan record baru, mengubah record,menghapus record dan sebagainya. Dengan SP, mungkin kita dapatmenghindari adanya duplikasi proses yang kurang lebih sama, sehinggapemeliharaannya juga jadi lebih mudah. M eningkatkan keamanan database. Dengan adanya SP, database akanlebih aman karena aplikasi yang memanggil SP tidak perlu mengetahui isi didalamnya. Sebagai contoh, dalam proses menambahkan data (insert), kitamembuat suatu SP khusus. Dengan demikian, saat client atau aplikasi akanmenambahkan data (insert) maka tidak perlu tahu nama tabelnya, karenahanya cukup memanggil SP tersebut dengan mengirimkan parameter yangdiinginkan.

Hello World! Sebagai contoh sederhana, kita akan membuat suatu SP yang akan menampilkan string “Hello World!” di layar hasil. Berikut ini perintah query untuk membuat SP tersebut:
CREATE PROCEDURE hel l o( ) BEGI N SELECT " Hel l o W l d! " ; or END

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 48 of 54

Untuk memanggil procedure tersebut, gunakanlah CALL. Berikut ini contoh pemanggilan procedure dan hasil tampilannya:
CALL hel l o( ) ;

Membuat, Mengubah dan Menghapus SP Membuat SP Untuk membuat SP baru, berikut ini bentuk umumnya:
CREATE [ DEFI NER = { user | CURRENT_USER } ] PROCEDURE sp_nam ( [ pr oc_par am er [ , . . . ] ] ) e et [ char act er i st i c . . . ] r out i ne_body CREATE [ DEFI NER = { user | CURRENT_USER } ] FUNCTI ON sp_nam ( [ f unc_par am er [ , . . . ] ] ) e et RETURNS t ype [ char act er i st i c . . . ] r out i ne_body

Contoh 1. Procedure untuk menghitung jumlah pelanggan
CREATE PROCEDURE j um ahPel anggan( ) l BEGI N SELECT COUNT( * ) FROM pel anggan; END

Cara pemanggilan dari procedure diatas adalah dengan menggunakan CALL jumlahPelanggan(). Hasilnya akan ditampilkan jumlah record dari tabelpelanggan. Berikut ini bentuk lain dari contoh diatas:
CREATE PROCEDURE j um ahPel anggan2( OUT hasi l AS I NT) l BEGI N SELECT COUNT( * ) I NTO hasi l FROM pel anggan; END

Pada bentuk procedure yang kedua di atas (jumlahPelanggan2), kita menyimpan hasil dari procedure ke dalam satu variabel bernama hasil yang bertipe INT. Perbedaan dari kedua bentuk di atas adalah, pada bentuk kedua, kita dapat memanggil procedure dengan SELECT, sedangkan pada yang pertama tidak bisa. Berikut ini contoh pemanggilan untuk procedure yang kedua:
m ysql > CALL j um ahPel anggan2( @ um ah) ; l j l Quer y OK, 0 r ows af f ect ed ( 0. 00 sec) m ysql > SELECT @ um ah AS ` Jum ah Pel anggan` ; j l l

Contoh 2. Procedure untuk menghitung jumlah item barang yang pernah dibeli oleh satu pelanggan.
CREATE PROCEDURE j um ahI t em l Bar ang ( pel anggan VARCHAR( 5) ) BEGI N SELECT SUM det i l _pesan. j um ah) ( l FROM pesan, det i l _pesan W HERE pesan. i d_pesan=det i l _pesan. i d_pesan

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 49 of 54

AND pesan. i d_pel anggan=pel anggan; END

Contoh 3. Function untuk menghitung jumlah produk yang tersedia (stock) untuk satu produk tertentu.
CREATE FUNCTI ON j um ahSt ockBar ang( pr oduk VARCHAR( 5) ) l RETURNS I NT BEGI N DECLARE j um ah I NT; l SELECT COUNT( * ) I NTO j um ah FROM pr oduk l W HERE i d_pr oduk=pr oduk; RETURN j um ah; l END

Untuk memanggil suatu function, kita tidak menggunakan CALL, tetapi langsung dapat memanggil dengan SELECT. Berikut ini contoh pemanggilan untuk fungsi di atas.
SELECT j um ahSt ockBar ang( ' B0001' ) ; l

Mengubah SP Untuk mengubah SP yang sudah ada, berikut ini bentuk umumnya:
ALTER { PROCEDURE | FUNCTI ON} sp_nam e

[characteristic ...]

Menghapus SP Untuk menghapus SP yang sudah ada, berikut ini bentuk umumnya:
DROP { PROCEDURE | FUNCTI ON} [ I F EXI STS] sp_nam e

Sintaks Dasar dalam SP SP dapat dikatakan sebagai bahasa pemrograman yang berada di dalam database. Oleh karena itu, tentunya terdapat sintaks-sintaks tertentu berhubungan dengan SP tersebut, misalnya bagaimana untuk mendeklarasikan variabel, penyeleksian kondisi, perulangan dsb. Pada bagian ini akan diuraikan beberapa sintaks dasar SP yang didukung oleh MySQL. Variabel Variabel digunakan untuk menyimpan suatu nilai secara temporer (sementara) di memory. Variabel akan hilang saat sudah tidak digunakan lagi. Variabel dalam MySQL sebelum dapat digunakan, pertama kali harus dideklarasikan terlebih dahulu. Berikut ini bentuk umum pendeklarasian suatu variabel di MySQL:
DECLARE var i abl e_nam DATATYPE [ DEFAULT val ue] ; e

Contohnya:
DECLARE j um ah I NT; l DECLARE kode VARCHAR( 5) ; DECLARE t gl _l ahi r DATE DEFAULT ‘ 1982- 10- 20’ ;

Setelah dideklarasikan, suatu variabel dapat diisi dengan suatu nilai sesuai dengan tipe data yang didefinisikan saat pendeklarasian. Untuk mengisikan nilaike dalam suatu variabel, digunakan perintah SET. Format umumnya sebagai berikut:
SET var i abl e_nam = expr essi on| val ue; e

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 50 of 54

Contohnya:
SET j um ah = 10; l SET kode = ( SELECT i d_pel anggan FROM pel anggan LI M T 1) ; I SET t gl _l ahi r = now( ) ;

Berikut ini contoh function hitungUmur() untuk menghitung umur seseorang saat ini berdasarkan tahun kelahiran yang diberikan.
CREATE FUNCTI ON hi t ungUm ur ( l ahi r DATE) RETURNS I NT BEGI N DECLARE t hn_sekar ang, t hn_l ahi r I NT; SET t hn_sekar ang = YEAR( now( ) ) ; SET t hn_l ahi r = YEAR ( l ahi r ) ; RETURN t hn_sekar ang - t hn_l ahi r ; END

Penyeleksian Kondisi Dengan adanya fasilitas penyeleksian kondisi, kita dapat mengatur alur proses yang terjadi dalam database kita. Di MySQL, penyeleksian kondisi terdiri dari IF, IF...ELSE dan CASE. Berikut ini bentuk umum ketiga perintah tersebut:
I F kondi si THEN per i nt ah- j i ka- benar ; END I F; I F kondi si THEN per i nt ah- j i ka- benar ; ELSE per i nt ah- j i ka- sal ah; END I F; CASE expr essi on W HEN val ue THEN st at em ent s [W HEN val ue THEN st at em ent s . . . ] [ ELSE st at em ent s] END CASE;

Berikut ini contoh penggunaan perintah IF dalam fungsi cekPelanggan() dimana fungsi ini memeriksa apakah pelanggan sudah pernah melakukan transaksi pemesanan barang. Jika sudah pernah, tampilkan pesan berapa kali melakukan pemesanan, jika belum tampilkan pesan belum pernah memesan.
CREATE FUNCTI ON cekPel anggan ( pel anggan var char ( 5) ) RETURNS VARCHAR ( 100) BEGI N DECLARE j um ah I NT; l SELECT COUNT( i d_pesan) I NTO j um ah FROM pesan l W HERE i d_pel anggan=pel anggan;

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 51 of 54

I F ( j um ah > 0) THEN l RETURN CONCAT( " Anda sudah ber t r ansaksi sebanyak " , j um ah, " kal i " ) ; l ELSE RETURN " Anda bel um per nah m akukan t r ansaksi " ; el END I F; END

Dan berikut ini contoh penggunaan perintah CASE dalam fungsi getDiskon() dimana fungsi ini menentukan diskon berdasarkan jumlah pesanan yang dilakukan.
CREATE FUNCTI ON get Di skon( j um ah I NT) RETURNS i nt ( 11) l BEGI N DECLARE di skon I NT; CASE W HEN ( j um ah >= 100) THEN l SET di skon = 10; W HEN ( j um ah >= 50 AND j um ah < 100) THEN l l SET di skon = 5; W HEN ( j um ah >= 20 AND j um ah < 50) THEN l l SET di skon = 3; ELSE SET di skon = 0; END CASE; RETURN di skon; END

Perulangan Selain penyeleksian kondisi, MySQL juga mendukung adanya perulangan dalam querynya. Perulangan biasanya digunakan untuk mengulang proses atau perintah yang sama. Dengan perulangan, perintah akan lebih efisien dan singkat. Berikut ini bentuk-bentuk perintah perulangan:

[label:] LOOP statements
END LOOP [ l abel ] ; [ l abel : ] REPEAT st at em ent s UNTI L expr essi on END REPEAT [ l abel ] [ l abel : ] W LE expr essi on DO HI st at em ent s END W LE [ l abel ] HI

Contoh perulangan dengan LOOP
SET i =1; ul ang: W LE i <=10 DO HI IF M OD( i , 2) <>0 THEN SELECT CONCAT( i , " adal ah bi l angan ganj i l " ) ;

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 52 of 54

END I F; SET i =i +1; END W LE ul ang; HI

BAB IX TRIGGER
Tujuan Kompetensi Khusus 1. Membuat Trigger 2. Menghapus Trigger Trigger Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE atau DELETE dari suatu tabel. Sebagai contoh misalnya kita ingin menyimpan id pelanggan secara otomatis ke tabel ‘log’ sebelum menghapus data di tabel pelanggan. Triggers mulai dikenal di versi MySQL 5.0, dan di versi saat ini (5.0.4) fungsionalitasnya sudah bertambah. Pada versi selanjutnya (5.1) pihak pengembang MySQL berjanji akan lebih menguatkan (menambah) fitur trigger ini. Trigger sering digunakan, antara lain untuk:

Melakukan update data otomatis jika terjadi perubahan. Contohnya adalahdalam sistem penjualan, jika dientri barang baru maka stock akan bertambahsecara otomatis. Trigger dapat digunakan untuk mengimplementasikan suatu sistem log.Setiap terjadi perubahan, secara otomatis akan menyimpan ke tabel log. Trigger dapat digunakan untuk melakukan validasi dan verifikasi datasebelum data tersebut disimpan.

Membuat Trigger Baru Berikut ini bentuk umum perintah untuk membuat triggers:
CREATE TRI GGER nam e [ BEFORE| AFTER] [ I NSERT| UPDATE| DELETE] ON t abl enam e FOR EACH ROW st at em ent

Dimana

BEFORE | AFTER digunakan untuk menentukan kapan proses secara otomatis akan dieksekusi, sebelum atau sesudah proses. INSERT | UPDATE | DELETE digunakan untuk menentukan event yang dijadikan trigger untuk menjalankan perintah-perintah di dalam triggers. Statement atau perintah dalam trigger dapat berupa satu perintah saja, dan dapat juga beberapa perintah sekaligus. Jika terdapat beberapa perintah dalam trigger, maka gunakan perintah BEGIN dan END untuk mengawali dan mengakhiri perintah. Di dalam statement trigger, kita dapat mengakses record tabel sebelum atau sesudah proses dengan menggunakan NEW dan OLD. NEW digunakanuntuk mengambil record yang akan diproses (insert atau update), sedangkan OLD digunakan untuk mengakses record yang sudah diproses (update atau delete). Berikut ini contoh trigger yang akan mencatat aktivitas ke tabel log setiap terjadi proses insert ke tabel pelanggan:
CREATE TRI GGER penj ual an. bef or e_i nser t BEFORE I NSERT ON

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 53 of 54

penj ual an. pel anggan FOR EACH ROW BEGI N I NSERT I NTO ` l og` ( descr i pt i on, ` dat et i m , user _i d) e` VALUES ( CONCAT( ' I nser t dat a ke t abel pel anggan i d_pl g = ' , NEW i d_pel anggan) , now( ) , user ( ) ) ; . END;

Menghapus Trigger Untuk menghapus trigger, dapat menggunakan perintah DROP TRIGGER dengan diikuti dengan nama tabel dan nama triggernya. Berikut ini bentuk umumdan contoh perintah untuk menghapus trigger. DROP TRIGGER tablename.triggername; Contoh :
DROP TRI GGER penj ual an. bef or e_i nser t ;

BAB X MENGAKSES MYSQL MELALUI PHP
Tujuan Kompetensi Khusus 1. Membuat aplikasi untuk mengakses MySQL melalui PHP Untuk mengakses database yang dibuat menggunakan MySQL maka kita dapat menggunakan berbagai macam bahasa pemrograman, salah satunya adalah menggunakan bahasa pemrograman PHP. Bahasa pemrograman PHP digunakan untuk membuat dan mengembangkan website. Pada umumnya database back-end yang digunakan adalah MySQL. Berikut adalah contoh sintak dasar untuk mengakses database MySQL menggunakan PHP

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

Page 54 of 54

<?php

$conn = m ysql _connect ( " l ocal host " , " r oot " , " " ) ;

i f ( ! $conn) { echo " Unabl e t o connect t o DB: " . m ysql _er r or ( ) ; exi t ; }

if (!m ysql _sel ect _db( " penj ual an" ) ) { echo " Unabl e t o sel ect m ydbnam e: " . m ysql _er r or ( ) ; exi t ; }

$sql = " SELECT * FROM Pel anggan" ;

$r esul t = m ysql _quer y( $sql ) ;

i f ( ! $r esul t ) { echo " Coul d not successf ul l y r un quer y ( $sql ) f r om DB: " . m ysql _er r or ( ) ; exi t ; }

if (m ysql _num ows( $r esul t ) == 0) { _r echo " No r ows f ound, not hi ng t o pr i nt so am exi t i ng" ; exi t ; }

whi l e ( $r ow = m ysql _f et ch_assoc( $r esul t ) ) { echo $r ow[ " i d_pel anggan" ] . " | " ; echo $r ow[ " nm _pel anggan" ] . " | " ; echo $r ow[ " al am " ] . " | " ; at echo $r ow[ " t el epon" ] . " | " ; echo $r ow[ " em l " ] . " | " ; ai }

m ysql _f r ee_r esul t ( $r esul t ) ;

?>

file:///D:/DOCUMENT/Modul%20DBMS.html

11/22/2012

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->