ang mungkin mengharuskan kita untuk mengubah pengaturan. 

Mengonfigurasi Apache 

Pengaturan konfigurasi Apache disimpan dalam file bernama httpd.conf. File ini 

memerlukan beberapa arahan agar PHP berfungsi. XAMPP menambahkan arahan ini saat  

menginstal perangkat lunak sehingga kita tidak perlu mengkonfigurasi Apache untuk 

membuat PHP bekerja. Kita dapat mengubah beberapa perilaku Apache dengan arahan di file 

httpd.conf. Misalnya, kita dapat mengubah di mana Apache mencari file halaman web dan 

nomor port apa yang didengarkan Apache.. Semua arahan Apache dijelaskan di situs web 

Apache di httpd.apache.org. Untuk mengubah konfigurasi Apache yang diinstal memakai  

XAMPP, kita perlu menemukan file httpd.conf di folder apache\ conf di folder utama tempat 

149 

 

Manajemen Database MySQL

XAMPP telah dipasang. Misalnya, jika XAMPP diinstal di direktori default, file konfigurasi 

Apache adalah c:\ xampp \ apache\ conf\ httpd.conf. 

Mengkonfigurasi MySQL 

MySQL membuat file konfigurasi saat diinstal. Kebanyakan orang tidak perlu 

mengubah konfigurasi MySQL. Namun, kita mungkin ingin mengubahnya untuk menyimpan 

database MySQL kita di tempat lain selain lokasi default. Faktanya, instalasi XAMPP 

mengonfigurasi MySQL untuk mencari direktori data di direktori XAMPP, yang bukan 

merupakan lokasi default untuk MySQL, jadi XAMPP mengonfigurasi pengaturan direktori 

datanya untuk Anda. Jika kita ingin menyimpan data kita di lokasi yang berbeda, kita dapat 

mengubah pengaturannya sendiri. Untuk mengubah konfigurasi MySQL yang diinstal 

memakai  XAMPP, kita perlu menemukan file my.cnf di folder mysql \ bin di folder utama 

tempat XAMPP berada diinstal. Misalnya, jika XAMPP diinstal di direktori default, file 

konfigurasi MySQL adalah c:\ xampp \ mysql\ bin\ my.cnf. 

Uninstall dan Reinstall XAMPP 

Jika kita merasa telah melakukan kesalahan dan ingin menginstal XAMPP lagi, kita 

harus menghapusnya terlebih dahulu sebelum menginstal ulang. Untuk menghapus dan 

menginstal ulang XAMPP, ikuti langkah-langkah berikut: 

1. Hentikan Apache dan MySQL di Control Panel XAMPP. 

Jika kita tidak menghentikan Apache dan MySQL sebelum kita menghapus XAMPP, kita 

mungkin akan melakukannya saat kita menginstal ulang XAMPP. Ini terutama benar 

jika kita memulai Apache dan MySQL sebagai layanan. 

2. Mulai uninstall dengan memilih Start➪All Programs➪Apache 

Friends➪XAMPP➪Uninstall 

Layar pertama dari prosedur uninstall terbuka. 

3. Bergerak melalui layar dan menjawab pertanyaan. 

Klik tombol Berikutnya untuk menelusuri layar; menjawab pertanyaan dengan memilih 

opsi yang sesuai. Kita dapat menyimpan database atau halaman web yang telah kita 

buat dengan memilih opsi yang sesuai. Sebuah pesan ditampilkan saat  XAMPP benar-

benar dihapus. 

4. Mulai lagi prosedur penginstalan dari awal. 

Troubleshooting 

Kadang-kadang, saat  kita melihat di Control Panel XAMPP, kita menemukan Apache 

dan/atau MySQL terdaftar tetapi tidak berjalan, dan kotak centang Layanan tidak dipilih. Ini 

berarti bahwa XAMPP tidak dapat memulai Apache atau MySQL sebagai layanan selama 

instalasi. Jalankan MySQL dan Apache sebagai layanan, tetapi tidak perlu. Kita dapat 

memulainya tanpa memilih kotak centang Layanan dan lingkungan pengembangan kita akan 

berfungsi dengan baik. Kita hanya perlu me-restart MySQL dan Apache di Control Panel setiap 

kali kita memulai komputer Anda. saat  MySQL dan Apache keduanya berjalan sebagai 

layanan, mereka mulai secara otomatis saat komputer kita mulai. Dalam kebanyakan kasus, 

kita dapat memulainya sebagai layanan di Control Panel memakai  metode yang 

dijelaskan di bagian ini. 

Pertama, coba pilih kotak centang Layanan dan klik tombol Mulai. XAMPP mencoba 

untuk memulai perangkat lunak sebagai layanan. Jika XAMPP tidak berhasil, kita akan melihat 

pesan yang ditampilkan di kotak bawah, yang menyatakan bahwa itu tidak dimulai atau 

dihentikan. Percobaan kedua atau ketiga mungkin berhasil. saat  XAMPP tidak berhasil 

memulai perangkat lunak sebagai layanan selama beberapa percobaan, klik tombol Mulai 

dengan kotak centang Layanan tidak dipilih. Perangkat lunak akan dimulai. Kemudian, 

hentikan perangkat lunak dengan mengklik tombol Stop. Kemudian, mulai perangkat lunak 

lagi dengan kotak centang Layanan dipilih. Biasanya, XAMPP sekarang berhasil memulai kedua 


 


 

 



 

1.1 Pengertian Basis Data 

Pangkalan data (disebut juga basis data; bahasa Inggris: database) 

yaitu   kumpulan data yang terorganisir, yang umumnya disimpan dan 

diakses secara elektronik dari suatu sistem komputer. Pada saat pangkalan 

data menjadi semakin kompleks, maka pangkalan data dikembangkan 

memakai   teknik perancangan dan pemodelan secara formal 

(https://id.wikipedia.org/wiki/Pangkalan_data). 

Perangkat lunak yang dapat dipakai  untuk mengelola basis data 

disebut sistem manajemen basis data (database management sistem) atau 

disingkat DBMS. DBMS merupakan perangkat lunak yang dirancang 

untuk dapat melakukan pengaturan dan mengelola koleksi data dalam 

jumlah yang besar dan dapat memanipulasi data secara lebih mudah. 

DBMS merupakan interface atau antar muka antara pengguna basis data 

(baik pengguna DBMS langsung maupun aplikasi) dengan data yang 

disimpan.  

RDBMS atau relationship database manajemen sistem yaitu   salah 

satu jenis DBMS yang mendukung hubungan antar tabel. Contoh RDBMS 

di antaranya yaitu   Oracle, Ms SQL Server, MySQL, DB2, Ms Access. 

 

1.2 Structured Query Language 

Structured Query Language atau yang disingkat SQL yaitu   sebuah 

bahasa yang dipakai  untuk mengakses data dalam basis data relasional. 

 2 

Bahasa ini secara de facto merupakan bahasa standar yang dipakai  

dalam manajemen basis data relasional. Saat ini hampir semua server basis 

data yang ada mendukung bahasa ini untuk melakukan manajemen datanya 

(https://id.wikipedia.org/wiki/SQL). 

SQL merupakan bahasa pemrograman khusus yang dipakai  untuk 

memanajemen data dalam RDBMS. SQL biasanya berupa perintah 

sederhana yang berisi instruksi-instruksi untuk manipulasi dan 

pengambilan data pada relational database atau database yang terstruktur. 

Perintah SQL ini sering juga disingkat dengan sebutan ‘query‘. 

 

1.3 MySQL 

Seiring berkembangnya zaman, teknologi semakin berkembang 

pesat termasuk perangkat lunak. Salah satu contoh perangkat lunak yaitu   

MySQL yang selalu di update oleh produsernya masing-masing. MySQL 

yaitu   pengembangan lanjutan dari proyek UNIREG yang dikerjakan oleh 

Michael Monty Widenius dan TcX (perusahaan perangkat lunak asal 

Swedia). 

MySQL yaitu   DBMS yang open source dengan dua bentuk lisensi, 

yaitu Free Software (perangkat lunak bebas) dan Shareware (perangkat 

lunak berpemilik yang penggunaannya terbatas). Jadi MySQL yaitu   

database server yang gratis dengan lisensi GNU General Public License 

(GPL) sehingga dapat Anda pakai untuk keperluan pribadi atau komersial 

tanpa harus membayar lisensi yang ada. 

Seperti yang sudah disebutkan sebelumnya, MySQL masuk ke 

dalam jenis RDBMS (Relational database Management Sistem). Maka 

dari itu, istilah semacam baris, kolom, tabel, dipakai pada MySQL. 

Contohnya di dalam MySQL sebuah database ada  satu atau beberapa 

tabel.  

MySQL merupakan database engine atau server database yang 

mendukung bahasa database SQL sebagai bahasa interaktif dalam 

mengelola data. MySQL yaitu   sebuah perangkat lunak sistem manajemen 

basis data SQL atau DBMS yang multithread, multi-user. 

  

  3  

1.4 Perbedaan SQL dan MySQL 

SQL dan MySQL yaitu   dua hal yang berbeda. SQL yaitu   bahasa 

pemrograman yang dipakai  untuk mengolah basis data, sedangkan 

MySQL yaitu   sebuah brand software database management sistem 

(DBMS) untuk mengolah basis data memakai   bahasa SQL itu sendiri. 

 

1.5 Alasan memakai   MySQL 

Sebagai pengembang perangkat lunak ada  beberapa alasan 

memakai   MySQL untuk membuat basis data atau database yaitu 

sebagai berikut. 

1. Speed  

MySQL menyediakan sistem basis data berkecepatan tinggi yang 

sempurna untuk proyek-proyek kecil hingga menengah. Ini 

berfungsi baik untuk perusahaan pemula, tetapi tidak memiliki 

banyak fitur seperti Oracle. Namun, sebagian besar perusahaan yang 

memakai   MySQL tidak memerlukan fitur yang disediakan oleh 

Oracle karena mereka membangun fungsionalitas di tingkat 

menengah (https://itxdesign.com/MySQL-vs-oracle/). 

2. Opensource 

MySQL dapat dipakai  secara gratis. Meskipun demikian ada juga 

untuk versi komersial yang tentu sudah diberikan tambahan fitur 

berupa kemampuan spesifik dan layanan technical support dari 

MySQL. 

3. Scalability 

Dapat menangani database dengan skala besar yaitu dengan jumlah 

record lebih dari 50 juta. 

4. Connectivity and Security 

Database MySQL dapat diakses dari semua tempat di Internet 

dengan hak akses tertentu. MySQL yaitu   database memakai   

enkripsi password, jadi database ini cukup aman karena memiliki 

password untuk mengaksesnya. 

5. Flexibility/Portability 

MySQL dapat dipakai  untuk mengembangkan aplikasi berbasis 

dekstop maupun aplikasi berbasis web dengan memakai   

teknologi yang beragam. Hal Ini menunjukkan bahwa MySQL 

 4 

memiliki fleksibilitas terhadap teknologi yang akan dipakai  

sebagai membangun aplikasi, yang memakai   PHP, Java, C++, 

maupun yang lainnya. Membangun aplikasi dilakukan dengan cara 

menyediakan plugin dan driver yang spesifik pada masing-masing 

teknologi ini .  

6. Cross platform operating system/ Lintas Platform Sistem Operasi 

MySQL dapat berjalan stabil di berbagai sistem operasi seperti 

windows, Linux, Unix. Apabila diperlukan proses migrasi data antar 

sistem operasi dapat dilakukan dengan mudah. 

Database MySQL memiliki dukungan terhadap stored procedure, 

fungsi, trigger, view, SQL standar ANSI, dan lain-lain yang tentu saja akan 

mempermudah dan mempercepat proses pengembangan aplikasi. 

 

1.6 Instalasi MySQL 

Pada buku ajar ini akan memakai   XAMPP untuk dapat 

mengakses MySQL. 

XAMPP yaitu   sebuah aplikasi open source terkait pengelolaan 

server yang dikembangkan oleh Apache Friends. Karena bersifat open 

source, aplikasi ini bisa Anda dipakai  secara gratis. Selain itu, sesuai 

namanya, X pada XAMPP berarti cross platform. Artinya, mendukung 

berbagai platform seperti Windows, macOS dan Linux. XAMPP sendiri 

terdiri dari Apache, MariaDB (yang dikembangkan dari MySQL), PHP 

dan Perl. XAMPP juga memberikan solusi sederhana dan cukup ringan 

dijalankan, memungkinkan membuat web server lokal untuk melakukan 

pengetesan website. XAMPP dapat dijalankan pada Mac dan Linux. Dalam 

buku ajar ini penggunaan aplikasi XAMPP diimplementasikan pada sistem 

operasi Windows. 

Untuk menginstal XAMPP maka lakukan langkah-langkah berikut ini. 

1. Unduh XAMPP 

Download XAMPP melalui website Apache Friends di link ini 

https://www.apachefriends.org/download.html. 

  5  

 

 

2. Instal XAMPP 

a. Lakukan instalasi sesudah  selesai mengunduh. Selama proses 

instalasi mungkin akan melihat pesan yang menanyakan apakah 

yakin akan menginstalnya. Silakan tekan Yes untuk melanjutkan 

instalasi. 

 

 

 

b. Klik tombol Next. 

 

 

 

Gambar 1.1 Tampilan Awal Website 

 

Gambar 1.2 Tampilan Instalasi XAMPP 

 

Gambar 1.3 Tampilan Awal XAMPP (1) 

 6 

c. Pada tampilan selanjutnya akan muncul pilihan mengenai komponen 

mana dari XAMPP yang ingin dan tidak ingin di instal. Beberapa 

pilihan seperti Apache dan PHP yaitu   bagian penting untuk 

menjalankan website dan akan otomatis diinstal. Silakan centang 

MySQL dan phpMyAdmin, untuk pilihan lainnya biarkan saja. 

 

 

 

d. Berikutnya silakan pilih folder tujuan di mana XAMPP ingin di 

instal, pada tutorial ini pada direktori C:\xampp. 

 

 

 

Gambar 1.4 Tampilan Awal XAMPP (2) 

 

Gambar 1.5 Tampilan Awal XAMPP (3) 

  7  

e. Pada halaman selanjutnya, akan ada pilihan apakah ingin menginstal 

Bitnami untuk XAMPP, di mana nantinya dapat dipakai  untuk 

memasang aplikasi WordPress, Drupal, dan Joomla secara otomatis. 

 

 

 

Gambar 1.6 Tampilan Awal XAMPP (4) 

 

 

Gambar 1.7 Tampilan Awal XAMPP (5) 

 8 

f. Pada langkah ini proses instalasi XAMPP akan dimulai. Silakan klik 

tombol Next. 

 

 

 

g. sesudah  berhasil diinstal, akan muncul notifikasi untuk langsung 

menjalankan control panel. Silakan klik Finish. 

 

 

 

Gambar 1.8 Tampilan Awal XAMPP (6) 

 

Gambar 1.9 Tampilan Awal XAMPP (7) 

  9  

h. Pilih Bahasa yang dipakai  klik Save. 

 

 

 

3. Langkah 3: Jalankan XAMPP 

Silakan buka aplikasi XAMPP kemudian klik tombol Start pada 

Apache dan MySQL. Jika berhasil dijalankan, Apache dan MySQL akan 

berwarna hijau seperti gambar di bawah ini. 

 

 

 

Untuk menjalankan MYSQL maka modul MYSQL harus diaktifkan 

dengan menekan tombol start pada bagian modul MYSQL. 

 

Gambar 1.10 Tampilan Pilihan Bahasa 

 

Gambar 1.11 Tampilan Control Panel XAMPP 

 10 

 

 

1.7 Studi Kasus dalam Praktik dan Latihan 

1. Skenario 

Judul database yang untuk kegiatan praktikum yaitu   database 

Penerbangan. Rancangan fisik database ini terdiri dari lima table master 

dan tiga table transaksi. Pada table master ada table pelanggan, tiket, 

data_penerbangan, bank, no_hp_pel. Sedangkan pada table transaksi ada 

table pemesanan, dan cek_jadwal. 

Skenario kasus untuk pembuatan database penerbangan ini yaitu   

sebagai berikut. 

 

 

 

Gambar 1.12 Tampilan Control Panel XAMPP (2) 

Pelanggan yang ingin memesan tiket pesawat meminta data 

penerbangan terlebih dahulu melalui website yang sudah disediakan 

dengan menginputkan tujuan penerbangan dan waktu penerbangan 

untuk mengecek jadwal penerbangan yang tersedia. Kemudian 

pelanggan memilih jadwal penerbangan yang diinginkan.  sesudah  itu, 

pelanggan melakukan registrasi online untuk mendapatkan username 

dan password. Kemudian, menginputkan data-data pelanggan lainnya 

berupa nama, alamat, nomor hp serta nama-nama penumpang. sesudah  

berhasil melakukan registrasi, pelanggan diminta membayar baik 

melalui transfer bank, kartu kredit, internet banking dengan nominal 

yang sudah ditentukan. Lalu melakukan konfirmasi pembayaran 

melalui form yang telah disediakan di website. sesudah  pelanggan 

membayar,  pelanggan akan menerima e-Mail berupa tiket dan bukti 

pembayaran yang nantinya dapat dicetak. 

  11  

2. Desain Relasi Basis Data Penerbangan 

inberdasar  ilustrasi di atas, dapat menghasilkan desain relasi basis 

data penerbangan seperti di bawah ini. 

 

 

  

 

Gambar 1.13 Desain Relasi database Penerbangan 

 12 

3. Entity Relationship Diagram (ERD) Tabel Master 

ERD (Entity Relationship Diagram) merupakan suatu model 

jaringan yang memakai   susunan data yang disimpan pada sistem 

secara abstrak. ERD juga menggambarkan hubungan antara satu entitas 

yang memiliki sejumlah atribut dengan entitas yang lain dalam suatu 

sistem yang terintegrasi. 

 

 

  

 

Gambar 1.14 Desain ERD Database Penerbangan 

  13  

BAB 2 

DATA DEFINITION LANGUAGE 

 

 

 

Capaian Pembelajaran 

1. Mampu memahami lebih lanjut tentang perintah SQL (DDL) pada 

DBMS MySQL. 

2. Mampu menerjemahkan dan mengimplementasikan konsep Entity 

Relationship Diagram (ERD) ke dalam bentuk DDL pada DBMS 

MySQL. 

 

2.1 Data Definition Language (DDL) 

Data Definition Language yaitu   bagian dari SQL. DDL berfungsi 

lebih kepada memanipulasi struktur database. DDL dipakai  untuk 

membuat database, membuat tabel beserta struktur tabel, mengubah 

struktur tabel, membuat relasi antar tabel, menghapus database, dan 

menghapus tabel. Berikut yaitu   perintah DDL. 

 

2.1.1 Perintah Create 

Perintah ini dipakai  untuk membuat database dan membuat tabel. 

1. Membuat database 

Untuk membuat database dengan perintah “CREATE database” 

atau dengan mengikuti pola sebagai berikut. 

 

 

 

Di mana create database yaitu   perintah untuk membuat database, 

sedangkan *nama_database yaitu   nama dari database yang dibuat. Untuk 

penamaan database tidak boleh memakai   spasi, spasi diganti dengan 

(_). Contoh pembuatan database sebagai berikut. 

 

Gambar 2.1 Sintaks Membuat database 

 14 

 

 

2. Membuat tabel 

Untuk membuat tabel dengan perintah “CREATE TABLE”. 

 

 

 

Perintah ini  error, karena untuk membuat tabel pada MySQL 

kita harus memasukkan minimal 1 buah field/kolom di dalamnya. Contoh 

perintah yang benar yaitu   sebagai berikut. 

 

 

 

3. Melihat Struktur Tabel 

Untuk melihat struktur pada tabel kita bisa memakai   perintah 

“DESC” atau “DESCRIBE”. Contohnya yaitu   sebagai berikut. 

 

Gambar 2.2 Membuat database Penerbangan 

 

Gambar 2.3 Sintaks Membuat Tabel (Error) 

 

Gambar 2.4 Membuat Tabel Pelanggan 

  15  

 

 

Selanjutnya buatlah tabel yang menyimpan nomor hp Pelanggan 

dengan struktur tabel sebagai berikut. 

 

 

 

Selanjutnya buatlah tabel yang menyimpan data penerbangan 

dengan struktur tabel sebagai berikut. 

Gambar 2.5 Melihat Struktur Tabel Pelanggan 

 16 

 

 

Selanjutnya buatlah tabel yang menyimpan data pemesanan tiket 

dengan struktur tabel sebagai berikut. 

 

 

 

Selanjutnya buatlah tabel yang menyimpan data tiket dengan 

struktur tabel sebagai berikut. 

  17  

 

 

Selanjutnya buatlah tabel yang menyimpan data bank dengan 

struktur tabel sebagai berikut. 

 

 

 

2.1.2 Mengubah Struktur Tabel dengan Perintah Alter 

Pada saat membangun suatu basis data adakalanya diperlukan 

perubahan struktur tabel yang pernah kita buat sebelumnya dikarenakan 

adanya perubahan kebutuhan sistem. Perubahan struktur yang terjadi dapat 

dalam bentuk penambahan kolom baru (ADD), perubahan lebar dan jenis 

kolom yang telah dibuat sebelumnya (MODIFY), atau dapat juga 

melakukan penghapusan kolom dan indeks (DROP), perubahan nama 

kolom sebelumnya (CHANGE), perubahan nama tabel (RENAME), dan 

lain sebagainya.  

Catatan penting dalam kegiatan mengubah struktur tabel yaitu   apa 

pun perubahan yang dilakukan pada kolom ataupun tabel tentu memiliki 

 18 

mempunyai dampak langsung pada data yang telah dimasukkan 

sebelumnya.  

Perintah DDL yang dapat dipakai  untuk mengubah struktur tabel 

yaitu   memakai   perintah "ALTER TABLE”. 

1. Menambahkan field (ADD) 

Perintah yang dipakai  untuk menambahkan field yaitu   “ALTER 

TABLE *NAMA_TABEL ADD *NAMA_FIELD”. Contohnya yaitu   sebagai 

berikut. 

 

 

 

2. Menghapus field (DROP) 

Perintah yang dipakai  untuk menghapus field yaitu   “ALTER 

TABLE *NAMA_TABEL DROP *NAMA_FIELD”. Contohnya yaitu   sebagai 

berikut. 

 

 

 

3. Mengubah Nama Field (CHANGE) 

Selain untuk menambahkan field pada tabel, perintah ALTER juga 

memungkinkan untuk mengubah field pada tabel. Perintah yang dipakai  

untuk mengubah field yaitu   “ALTER TABLE *NAMA_TABEL CHANGE 

*NAMA_FIELD”. Contohnya yaitu   sebagai berikut. 

 

Gambar 2.6 Menambahkan Field 

 

Gambar 2.7 Menghapus Field 

  19  

 

 

4. Mengubah Lebar dan Jenis Field (MODIFY) 

Perintah yang dipakai  untuk mengubah lebar dan jenis field 

yaitu   “ALTER TABLE *NAMA_TABEL MODIFY *NAMA_FIELD”. 

Contohnya yaitu   sebagai berikut. 

 

 

 

5. Mengubah Nama Table (RENAME) 

Perintah yang dipakai  untuk mengubah nama tabel yaitu   

“ALTER TABLE *NAMA_TABEL RENAME *NAMA_TABEL_BARU”. 

Contohnya yaitu   sebagai berikut. 

 

 

 

2.1.3 Perintah Drop 

Perintah drop dipakai  untuk menghapus database dan 

menghapus tabel. 

1. Menghapus database 

Perintah yang dipakai  untuk menghapus database yaitu   “DROP 

database *NAMA_DATABASE”. Contohnya yaitu   sebagai berikut. 

 

Gambar 2.8 Mengubah Nama Field 

 

Gambar 2.9 Mengubah Lebar dan Jenis Field 

 

Gambar 2.10 Mengubah Nama Tabel 

 20 

 

 

2. Menghapus Tabel 

Perintah yang dipakai  untuk menghapus tabel yaitu   “DROP 

TABLE *NAMA_TABEL”. Contohnya yaitu   sebagai berikut. 

 

 

 

2.2 Soal Latihan 

Sebagai tugas Latihan maka kerjakan lah soal berikut ini: 

1. Buat database dengan nama dbCaffe dengan scenario kasus sebagai 

berikut. 

 

 

 

Gambar 2.11 Menghapus database 

 

Gambar 2.12 Menghapus Tabel 

1. Dimalam yang cerah ini, Amel dan kelima sahabatnya pergi 

mengunjungi kafe Askioo. Sesampainya di sana mereka langsung 

disambut oleh salah satu pelayan kafe di sana yaitu Zainal. Mereka 

diarahkan oleh Dio, pelayan yang cukup tampan, ke meja yang masih 

kosong dan menyerahkan buku menu. Masing-masing dari mereka 

mulai memesan makanan yang ada di sama. Mulai dari Amel memesan 

1 cheese cake dan 1 coffe americano, Clara memesan 1 pasta extra 

mozarella dan 1 gelas air putih, Dara 1 jus stroberi, Tyas 2 lava cake, 

Wendy 1 cheese burger dan 1 kaleng soda, dan Mira 1 porsi salad buah. 

Pesanan mereka disiapkan oleh Filo sebagai koki sekaligus barista di 

kafe ini . sesudah  sekian lama menunggu tiba akhirnya pesanan 

mereka. sesudah  selesai dengan segala basa-basi membahas gosip 

terbaru Amel dan kawan-kawan berniat pergi tapi sebelum itu mereka 

membayar semua pesanan mereka ke kasir. Ternyata yang si kasir 

yaitu   Salsa salah satu teman mereka dan sekaligus karyawan di kafe 

ini . Tak lama kemudian kafe tutup dan Salsa melaporkan hasil dari 

pendapatan hari ini kepada manajer yaitu Alexander. 

  21  

2. inberdasar  skenario ini  berikut ini yaitu   ERD yang sesuai 

dengan studi kasus di atas. 

 

 

 

3. Dengan memakai   MySQL buatlah database dbcaffe_nama, 

nama yaitu   nama masing-masing mahasiswa. 

4. Pilih dan buka database ini . Buat tabel seperti yang di bawah 

ini 

a. Tabel Pelanggan, dengan struktur berikut ini. 

 

id_Pelanggan Char (2) not null primary key 

Nama_pelanggan Varchar (20) not null 

 

b. Tabel Pegawai, dengan struktur berikut ini. 

 

idpegawai Char (4) not null primary key 

id_mngr Char (4) not null primary key 

Nama_pegawai Varchar (20) not null 

Alamat Varchar (30) not null 

No_hp Int (12) not null 

 

  

 22 

c. Tabel Manager, dengan struktur berikut ini. 

 

id_mngr Char (4) not null primary key 

Nm_mngr Varchar (20) not null 

Alamat Varchar (30) not null 

No_hp Int (12) not null 

 

d. Tabel Menu, dengan struktur berikut ini. 

 

Kd_menu Char (3) not null primary key 

Nm_menu Varchar (20) not null 

Jns_menu Varchar (10) not null 

Harga Int (10) not null 

 

e. Transaksi, dengan struktur berikut ini. 

 

Tgl_trx Date not null 

no_faktur Char (6) not null 

Tgl_beli Date 

Id_pelanggan Char (2) not null  

Idpegawai char (4) not null 

 

f. Tabel detail transaksi dengan struktur berikut ini. 

 

Kd_menu Char (3) 

no_faktur Char (6) 

Jml Int (4) 

 

g. Tabel log_menu, dengan struktur berikut ini. 

 

Kd_menu Char (3) 

Nm_menu Varchar (20) 

Harga Int (10) 

 

5. Perbaiki struktur tabel dengan rincian seperti soal berikut ini. 

a. Tambahkan field email pada Tabel pegawai dan manajer dengan 

struktur data varchar(30) null. 

b. Ganti lebar data field alamat menjadi 50. 

  23  

c. Ganti struktur data field harga pada Tabel menu menjadi int (12) not 

null default 0. 

d. Ganti nama Tabel pegawai menjadi karyawan. 

e. Ganti idPegawai menjadi kdKaryawan dengan tipe & lebar data 

yang sama. 

f. Ganti nama_pegawai menjadi nmKaryawan dengan tipe & lebar 

data yang sama. 

6. Pada tabel transaksi lakukan perubahan sebagai berikut: 

a. Tambahkan field total_harga int (12) not null default 0. 

7. Rubahlah nama tabel dengan ketentuan sebagai berikut. 

a. Dari karyawan menjadi pegawai. 

b. Tabel pegawai kembali menjadi karyawan. 

  

 24 

BAB 3 

DATA MANIPULATION LANGUAGE 

 

 

 

Capaian Pembelajaran 

1. Mampu memahami lebih lanjut tentang perintah SQL (DML) pada 

DBMS MySQL. 

2. Mampu menerjemahkan dan mengimplementasikan konsep Entity 

Relationship Diagram (ERD) ke dalam bentuk DML pada DBMS 

MySQL. 

 

3.1 Data Manipulation Language (DML) 

Data Manipulation Language yaitu   sekumpulan elemen sintaks 

yang mirip dengan bahasa pemrograman komputer yang dipakai  untuk 

memanipulasi data, misalnya memasukkan data, menghapus data, dan 

memperbarui data yang ada di dalam database. 

Berikut yaitu   perintah yang termasuk dalam kelompok DML (Data 

Manipulation Languange). 

 

3.1.1 Perintah Insert 

Insert dipakai  untuk menambahkan data baru kedalam tabel. 

Perintah ini dapat dibuat sesudah  database dan tabel berhasil dibuat. 

Berikut yaitu   contoh melakukan 10 insert data ke tabel tiket 

memakai   “INSERT INTO” dan melihat hasilnya memakai   

perintah “SELECT”. 

 

  25  

 

 

Maka hasil dari tabel tiket seperti tampilan berikut ini. 

 

 

 

Selanjutnya tambahkan data pada tabel-tabel yang telah dibuat 

sebelumnya dengan isian sebagai berikut. 

 

 

 

 

Gambar 3.1 Insert Data Tabel Tiket 

 

Gambar 3.2 Hasil Insert Data Tabel Tiket 

 

Gambar 3.3 Isian Tabel Pelanggan 

 26 

 

 

 

 

 

 

 

Gambar 3.4 Isian Tabel Bank 

 

Gambar 3.5 Isian Tabel Data_penerbangan 

 

Gambar 3.6 Isian Data Tabel Nomor Hp Pelanggan 

  27  

 

 

 

 

3.1.2 Perintah Select 

Select yaitu   perintah yang paling sering dipakai  pada SQL, 

sehingga kadang-kadang istilah query dirujukkan pada perintah select. 

Select dipakai  untuk menampilkan data dari satu atau lebih tabel, 

biasanya dalam sebuah basis data yang sama. 

Umumnya perintah select sebagai berikut. 

SELECT * FROM nama_tabel WHERE predikat; 

Jika kata “WHERE tidak dicantumkan, maka secara otomatis akan 

menampilkan seluruh isi tabel terkait. Beberapa bagian yang ada  pada 

select yaitu   sebagai berikut. 

  

 

Gambar 3.7 Isian Data Tabel Pemesanan 

 

Gambar 3.8 Isian Data Tabel Tiket 

 28 

1. Where 

Where berfungsi untuk menampilkan data sesuai syarat yang 

diberikan. Beberapa operator yang biasa dipakai  yaitu   sama dengan 

(=), tidak sama dengan (< >), lebih kecil (<), lebih kecil atau sama (<=), 

lebih besar (>), dan lebih besar atau sama (>=). 

 

2. AND, OR, dan NOT 

AND dan OR berfungsi untuk memadukan antara satu kondisi 

dengan kondisi lainnya. Sedangkan NOT dipakai  untuk kondisi 

ingkaran. Contoh penggunaan perintah SELECT untuk menampilkan 

seluruh data yang ada  pada table tiket. 

 

 

 

Menampilkan data (memakai   perintah SELECT) yang ada  

pada tiga buah tabel yakni tabel pemesanan, tabel tiket, dan tabel 

data_penerbangan memakai   klausa “WHERE”. 

 

 

 

Gambar 3.9 Contoh Penggunaan Select 

 

Gambar 3.10 Contoh Penggunaan Select dengan Kondisi 

  29  

3.1.3 Perintah Update 

Update dipakai  untuk mengubah/memperbaharui data yang sudah 

ada. Umumnya perintah update sebagai berikut. 

UPDATE nama_tabel SET kolom1 = nilai1, kolom2 = nilai2, 

... WHERE kondisi; 

Contoh melakukan UPDATE untuk melakukan set data jumlah 

penumpang (jmlh_penumpang) sesuai dengan nomor penerbangan 

(no_penerbangan) pada table tiket. 

 

 

 

Peringatan!! 

Pada saat update data jika tidak mengetikkan kondisi atau tidak 

memakai   perintah where, maka seluruh data pada field akan ikut 

terubah sesuai data baru yang kalian masukkan 

 

3.1.4 Perintah Delete 

Perintah delete berguna untuk menghapus data yang ada di tabel. 

Tentunya data yang dihapus yakni data yang dianggap sudah tidak 

dipakai  lagi. Umumnya perintah delete sebagai berikut. 

DELETE FROM nama_tabel WHERE kondisi; 

 

Gambar 3.11 Update Tabel Tiket 

 30 

Contoh menghapus data pada tabel pemesanan sesuai dengan nomor 

pesanan (no_pesanan) sebagai berikut. 

 

 

 

3.2 Macam-macam bentuk Penggabungan (Join) 

Join berfungsi untuk menggabungkan dua tabel yang didapat 

melalui proses seleksi melalui kolom/kata kunci tertentu untuk 

menemukan suatu informasi yang lengkap. 

1. Cross Join 

Cross join yaitu   bentuk penggabungan yang tidak memerlukan 

adanya kondisi. Bentuk umum: 

SELECT kolom1, kolom2 FROM tabel1 CROSS JOIN 

tabel2; 

2. Inner Join 

Inner join merupakan bentuk penggabungan yang mirip dengan 

cross join, bedanya pada Inner Join ditambahkan kondisi. Bentuk 

umum: 

SELECT kolom FROM tabel1 INNER JOIN tabel2 ON 

kondisi; 

3. Straight Join 

Straight join mirip dengan inner join bedanya tidak memakai   

“where”. Bentuk umum: 

SELECT kolom FROM Tabel1 STRAIGHT JOIN tabel2; 

4. Left (outer) Join 

Join yang menampilkan semua data disebelah kiri dan menampilkan 

data disebelah kanan yang cocok dengan data disebelah kiri dari 

tabel yang dijoinkan. Jika tidak ada data yang cocok, maka secara 

otomatis akan di set null. Bentuk umum: 

SELECT kolom FROM tabel1 LEFT JOIN tabel2 ON 

kondisi; 

  

 

Gambar 3.12 Sintaks Delete 

  31  

5. Right (outer) Join 

Merupakan lawan dari left join. Bentuk umum: 

SELECT kolom FROM tabel1 RIGHT JOIN tabel2 ON 

kondisi; 

Contoh penggunaan salah satu jenis join (Inner Join) dengan 

menampilkan “no_tiket” dan “no_penerbangan” yang ada di table tiket dan 

data_penerbangan. Kemudian digabungkan memakai   perintah INNER 

JOIN dengan syarat field “no_penerbangan” yang ada di kedua table itu 

sama. 

 

 

 

Selain memakai   perintah join untuk menampilkan data yang 

diperoleh dari relasi beberapa tabel, kita juga dapat bermain dengan 

memakai   perintah where. Sebagai contoh Menampilkan “no_tiket” 

dan “no_penerbangan” yang ada di table tiket dan data_penerbangan. 

 

 

Gambar 3.13 Contoh Penggunaan Select dengan Inner Join 

 32 

 

 

Ketika diketikkan perintah seperti Gambar 3.14 maka akan muncul 

pesan column ‘no_penerbangan’ in field list is ambiguous mengapa bisa 

demikian? Perhatikan pesan yang muncul yang menyatakan bahwa kolom 

no_penerbangan ambigu yang artinya ada  nama kolom yang sama 

pada kedua tabel. No_penerbangan ada  di dalam tabel tiket dan 

ada  di dalam tabel data_penerbangan. 

Jika ada  dua kolom dengan nama yang sama maka kolom 

ini  harus menyertakan nama tabelnya, contoh tiket.no_penerbangan. 

Perhatikan perintah seperti pada Gambar 3.15 berikut ini. 

 

 

 

Ketika menampilkan data dari beberapa tabel, pada bagian from 

harus disebutkan nama-nama tabel yang saling berhubungan yang dapat 

dipakai  untuk menampilkan data. Untuk mempermudah dan 

Gambar 3.14 Contoh menampilkan data dari beberapa tabel (1) 

 

Gambar 3.15 Contoh menampilkan data dari beberapa tabel (2) 

  33  

mempersingkat penulisan nama tabel kita dapat memakai   alias atau 

perintah (as). Perhatikan perintah pada Gambar 3.16 berikut ini. 

 

 

 

3.3 Operator Pembanding Dan Operator Logika 

Operator pembanding yakni operator untuk membandingkan dua 

nilai. Hasil perbandingan akan bernilai benar jika kondisi perbandingan 

ini  benar, dan bernilai salah jika kondisi perbandingan ini  

bernilai salah. Operator logika yaitu   operator yang dipakai  untuk 

membandingkan logika benar dan logika salah. Kedua operator ini 

biasanya dipakai  untuk menampilkan data dengan suatu syarat atau 

kondisi. Berikut jenis-jenis operator pembanding dan operator logika. 

1. Operator Pembanding 

Berikut ini yaitu   operator pembanding yang biasanya dipakai  

pada Bahasa SQL, operator ini  di antaranya yaitu   lebih besar(>), 

lebih kecil (<), lebih kecil atau sama dengan (<=), sama dengan (=), dan 

sama dengan (!=). 

Contoh operator pembanding dalam menampilkan data penerbangan 

yang memakai   maskapai “Garuda Indonesia” memakai   perintah 

SELECT pada table data_penerbangan sebagai berikut. 

 

 

Gambar 3.16 Menampilkan data dari beberapa tabel dengan tabel alias 

 34 

 

 

2. Operator Logika 

Operator logika yang dapat dipakai  yaitu   “dan” (AND atau 

&&), “atau” (OR atau ||), dan “lebih besar atau sama dengan” (NOT atau 

!). Contoh penggunaan operator logika, misalnya akan menampilkan data 

penerbangan yang kota_tujuan bukan “Jakarta” (<> Jakarta) sebagai 

berikut. 

 

 

 

Contoh selanjutnya dalam penerapan operator pembanding dan 

operator logika akan dibahas berikut ini. Misalnya kita akan menampilkan 

data pelanggan yang tanggal lahirnya sebelum tanggal 1993-09-10, maka 

perintahnya yaitu   sebagai berikut. 

 

 

 

Gambar 3.17 Contoh Penggunaan Operator Pembanding 

 

Gambar 3.18 Contoh Penggunaan Operator Logika 

 

Gambar 3.19 Penggunaan operator pembanding mencari tanggal lahir 

  35  

Penggunaan kata “order by” yaitu   untuk mengurutkan data 

inberdasar  nama depan. Pada MySQL ada  kelonggaran dalam hal 

penulisan tanggal selama format penulisannya tetap mengikuti aturan 

"tahun-bulan-tanggal". Misal "1993-09-10" dapat ditulis “1993-09-10”, 

atau “1993#09#10” atau “1993.09.10”, atau 19930910, atau 930910. 

Contoh selanjutnya yaitu   menampilkan data pelanggan yang lahir 

sebelum tanggal 1995-04-20 dan berjenis kelamin “laki-laki”. 

 

 

 

Selanjutnya untuk mencoba penggunaan format tanggal dapat anda 

coba pada contoh di atas kemudian tangkapan layar dapat dimasukkan 

kedalam laporan.  

Selanjutnya yaitu   penggunaan operator pembanding dan operator 

logika tingkat lanjut. Latihan selanjutnya yaitu   menampilkan semua data 

pelanggan berikut usianya saat ini, beberapa cara dapat dilakukan seperti 

mengurangkan tahun sekarang dengan tahun lahir, akan tetapi cara ini 

masih kurang valid khususnya bagi pelanggan yang lahir di akhir tahun, 

dan proses perhitungan di awal tahun berikutnya, tentu saja usia pelanggan 

sudah dihitung 1 tahun. Berikut ini ada perintah SQL yang akan kita 

gunakan untuk menghitung tanggal lahir. 

 

Gambar 3.20 Penggunaan Operator logika dan Operator Pembanding  

 36 

 

 

Selanjutnya yaitu   menampilkan data pelanggan yang umur nya di 

bawah 25 tahun dan data diurutkan inberdasar  usia 

 

 

 

3.4 Soal Latihan 

Jawablah pertanyaan berikut ini kemudian sertakan hasil ambilan 

layar pada laporan tugas yang anda buat. 

1. Memasukkan data pada tabel berikut ini. 

a. Tabel manajer, tampilkan hasil. 

 

Gambar 3.21 Penerapan Operator Pembanding untuk menghitung umur 

 

Gambar 3.22 Penerapan Operator Pembanding dengan berbagai kondisi 

  37  

b. Tabel karyawan, Pada kolom id_manager masukkan salah satu 

id_manager yang telah dimasukkan pada table manager. Kemudian 

tampilkan. 

c. Tabel pelanggan, tampilkan hasil. 

d. Tabel menu, Menampilkan hasil. 

e. Tabel transaksi, Pada tabel transaksi masukkan id_pegawai dan 

id_pelanggan inberdasar  data yang telah dimasukkan pada table 

pelanggan dan pada table pegawai sebelumnya. Kemudian 

tampilkan hasil. 

f. Tabel detail transaksi (sesuaikan data yang dimasukkan inberdasar  

data pada tabel transaksi dan tabel menu). 

2. Menampilkan kdKaryawan, nmKaryawan dari tabel karyawan. 

3. Menampilkan kdKaryawan, nmKaryawan dari tabel karyawan, urut 

inberdasar  nama. 

4. Menampilkan id_pelanggan, nama_pelanggan dari tabel pelanggan, 

urut inberdasar  nama (descending). 

5. Mengupdate data: alamat karyawan dengan kdKaryawan = KD05 

menjadi ‘Banjarbaru’. 

6. Menampilkan id_pelanggan, total_harga, tgl_trx dari tabel transaksi. 

Di mana tgl_trx sebelum 15 November 2019. 

7. Menampilkan id_pelanggan, total_harga, tgl_trx dari tabel transaksi. 

Di mana tgl_trx antara 11 oktober 2019 sampai 16 Desember 2019, 

dan id_pelanggan = 14. 

8. Menampilkan tabel transaksi, yang kd_menu nya selain M15. 

9. Hanya menampilkan tabel transaksi dengan kd_menu M15. 

10. Menampilkan jumlah menu dengan harga lebih dari 25000. 

11. Menampilkan rata-rata harga dari tabel transaksi. 

12. Menampilkan nilai maksimal harga dari tabel transaksi. 

13. Merelasikan tabel pelanggan dengan tabel transaksi memakai   

natural join dan perintah where. 

14. Merelasikan tabel menu dengan tabel transaksi memakai   

natural join dan perintah where. 

 

 

  

 38 

BAB 4 

DATA MANIPULATION LANGUAGE 2 

 

 

 

Capaian Pembelajaran 

1. Mampu memahami lebih lanjut tentang perintah SQL (DML) pada 

DBMS MySQL. 

2. Mampu memakai   operator pada saat memanipulasi data. 

 

4.1 Operator Precedence, Like, Not Like, REGEXP 

Pada bab ini akan dibahas terkait operator yang dapat dipakai  

pada saat melakukan manipulasi data dalam MySQL. 

 

4.1.1 Operator Precedence 

Operator precedence yaitu   tingkatan hierarki dalam memproses 

serangkaian operator. 

 

Tabel 4.1  Tabel Operator Precedence 

Tingkatan Hierarki Jenis Operator 

Paling Tinggi BINARY 

 

NOT ! 

- (unary minus) 

* / % 

+ - 

<< >> 

< <= = <=> != <> >= > IN IS LIKE 

REGEXP RLIKE 

BETWEEN 

AND && 

Paling Rendah OR || 

 

 

  39  

Semakin ke atas letak operator, maka semakin tinggi tingkat hierarki 

operator ini . Begitu pula sebaliknya, semakin rendah letaknya maka 

akan semakin lemah hierarkinya. Untuk operator yang sama kuat, misal + 

dan - digabung dengan operator * / %, maka akan ditentukan hierarkinya 

tergantung dari letak mana yang paling kiri/paling awal ditemukan. Dan 

untungnya letak hierarki ini dapat diubah dengan bantuan tanda kurung "(" 

dan ")".  

 

4.1.2 Operator LIKE, NOT LIKE 

Operator LIKE, NOT LIKE banyak dipakai  dalam operasi karakter. 

1. Operator LIKE 

Operator LIKE dipakai  untuk mencari data yang "menyerupai" 

atau "hampir sama" dengan kriteria tertentu. Untuk mencari data 

string/teks. Simbol "%" dipakai  untuk membantu pelaksanaan operator 

LIKE. Letak "%" sangat berpengaruh dalam menentukan kriteria. Contoh 

menampilkan data pelanggan yang namanya berawalan huruf "a": 

(perhatikan letak simbol persennya "%"). 

 

 

 

Baris pertama ‘select...’ dipakai  untuk menunjukkan field mana 

saja yang ingin ditampilkan. Baris kedua ‘from...’ dipakai  untuk 

tampilkan data pelanggan yang namanya berawalan huruf "r". 

Gambar 4.1 Operator Like Menampilkan Nama Berawalan Huruf "A" 

 40 

 

 

Tampilkan data pelanggan yang namanya berakhiran huruf "i". 

Perhatikan letak penulisan tanda "%". 

 

 

 

Tampilkan data pelanggan yang namanya berakhiran "ni". 

 

 

 

Gambar 4.2 Operator Like Menampilkan Nama Berawalan Huruf "R" 

 

Gambar 4.3 Operator Like Menampilkan Nama Berakhiran Huruf "I" 

 

Gambar 4.4 Operator Like Menampilkan Nama Berakhiran Kata "Ni" 

  41  

Agar operator LIKE dapat membedakan huruf besar dan kecil 

tambahkan kata BINARY sesudah  perintah LIKE (sehingga perintahnya 

menjadi LIKE BINARY). Pertama coba untuk melihat pelanggan yang 

memakai   huruf ‘y’ kecil pada awal huruf nama belakangnya. 

 

 

 

Tidak ditemukan (‘empty set’) karena tidak ada pelanggan yang 

memakai   huruf ‘y’ kecil pada awal huruf nama belakangnya. Lalu 

coba untuk melihat pelanggan dengan nama_depan yang memiliki awalan 

huruf kapital ‘A’. 

 

 

 

Menampilkan nama pelanggan yang memiliki huruf "a" di mana pun 

letak huruf ini  (bisa juga berupa kata). Perhatikan penulisan tanda 

"%". 

Gambar 4.5 Operator Like dengan Binary 

 

Gambar 4.6 Operator Like dengan Binary 

 42 

 

 

Atau memiliki huruf "i" pada namanya? (Bisa juga berupa kata) 

 

 

 

4.1.3 Operator REGEXP 

Operator REGEXP (singkatan dari REGular EXPressions) 

merupakan bentuk lain dari operator LIKE, dengan fungsi yang lebih 

disempurnakan. Operator REGEXP biasanya ditemani juga dengan 

simbol-simbol tertentu dalam melaksanakan tugasnya, seperti Tabel 4.2. 

 

Tabel 4.2  Tabel Operator REGEXP 

Simbol Keterangan 

. Satu tanda titik (.) yaitu   untuk mewakili satu karakter 

[?] Mewakili beberapa karakter atau range yang ditentukan. 

^ Menampilkan letak awal dari sebuah kriteria yang ditentukan 

$ Menampilkan letak akhir dari sebuah kriteria yang telah ditentukan 

 

Gambar 4.7 Operator Like dengan Binary 

 

Gambar 4.8 Operator Like dengan Binary 

  43  

Contohnya menampilkan nama pelanggan yang memiliki awal huruf 'a'. 

 

 

 

Tampilkan data pelanggan yang namanya berawalan huruf "r". 

 

 

 

Tampilkan nama pelanggan yang memiliki awal huruf 'a' sampai 

dengan huruf 'r'. 

 

 

 

Gambar 4.9 Operator REGEXP 

 

Gambar 4.10 Operator REGEXP 

 

Gambar 4.11 Operator REGEXP 

 44 

Tampilkan data pelanggan yang namanya berakhiran huruf "i". 

 

 

 

Tampilkan data pelanggan yang namanya berakhiran "ni". 

 

 

 

Tampilkan nama pelanggan yang panjangnya 4 karakter. 

 

 

  

 

Gambar 4.12 Operator REGEXP 

 

Gambar 4.13 Operator REGEXP 

 

Gambar 4.14 Operator REGEXP (1) 

  45  

Perintah di atas bisa juga ditulis seperti Gambar 4.15 berikut ini. 

 

 

 

4.2 Fungsi Statistik Dasar 

Fungsi statistik dasar pada MySQL dipakai  untuk berbagai 

kebutuhan yang dikenakan pada kolom yang mempunyai jenis numerik 

atau angka. Berikut ini yaitu   fungsi statistik dasar yang dapat dipakai  

untuk menampilkan data pada database MySQL. 

1. AVG (ekspresi) 

Fungsi AVG () atau average dipergunakan untuk mencari nilai rata-

rata dalam suatu kolom pada tabel. Pernyataan dalam fungsi AVG() 

umumnya yaitu   nama kolom dengan tipe data numerik atau angka. 

Contohnya sebagai berikut. 

 

 

 

2. COUNT(x) 

Fungsi COUNT() dipergunakan untuk menghitung jumlah baris dari 

sebuah kolom dalam suatu tabel. Huruf (x) yaitu   nama kolom dari tabel 

yang ingin dicari jumlah baris datanya. Contohnya sebagai berikut. 

 

 

Gambar 4.15 Operator REGEXP (2) 

 46 

 

 

3. MAX(ekspresi) 

Fungsi MAX dipergunakan untuk menghitung nilai terbesar dari 

suatu kolom pada suatu tabel, dengan persyaratan yaitu kolom yang dicari 

nilai terbesarnya harus memiliki tipe data numerik atau angka. Contohnya 

sebagai berikut. 

 

 

 

4. MIN(ekspresi) 

Fungsi MIN () merupakan kebalikan dari fungsi MAX (). Fungsi ini 

dipergunakan untuk mencari nilai terkecil dari suatu kolom dalam suatu 

tabel. Contohnya sebagai berikut. 

 

 

 

5. STD(ekspresi) dan STDDEV(ekspresi) 

Fungsi ini dapat kita gunakan untuk mendapatkan standar deviasi 

dari suatu kolom dalam suatu tabel. Ekspresi biasanya menyatakan kolom 

dalam suatu tabel dengan tipe data numerik. Contohnya sebagai berikut. 

  47  

 

 

6. SUM(ekspresi) 

Fungsi SUM () dipergunakan untuk mendapatkan total nilai dari 

suatu kolom dalam suatu tabel. Contohnya sebagai berikut. 

 

 

 

4.3 Soal Latihan 

inberdasar  database caffe tampilkan data berikut ini. 

1. Menampilkan id_pelanggan dan nama_pelanggan dari tabel 

pelanggan, dengan nama berawal huruf a. 

2. Menampilkan id_pelanggan dan nama_pelanggan dari tabel 

pelanggan, dengan nama berakhiran huruf i. 

3. Menampilkan id_pelanggan dan nama_pelanggan dari tabel 

pelanggan, dengan nama berakhiran ‘ani’. 

4. Menampilkan id_pelanggan dan nama_pelanggan dari tabel 

pelanggan, yang memiliki ‘li’ di antara namanya. 

5. Menampilkan id_pelanggan dan nama_pelanggan dari tabel 

pelanggan, yang berawalan huruf M. 

6. Menampilkan id_pelanggan dan nama_pelanggan dari tabel 

pelanggan yang memiliki nama berakhiran huruf a. 

7. Menampilkan id_pelanggan dan nama_pelanggan dari tabel 

pelanggan, yang nama pelanggan ini  memiliki panjang karakter 

15. 

  

 48 

BAB 5 

STORED PROCEDURE 

 

 

 

Capaian Pembelajaran 

1. Mampu memahami lebih lanjut tentang perintah SQL Stored 

Procedure pada DBMS MySQL. 

2. Mampu mengimplementasikan pembuatan stored procedure yang 

diperlukan pada DBMS MySQL. 

 

5.1 Stored procedure 

Stored procedure yaitu   sebuah kelompok kode SQL yang di 

simpan di katalog database dan dapat di panggil kemudian oleh program, 

trigger atau bahkan stored procedure. Sebuah Stored procedure yang 

memanggil diri nya sendiri di sebut rekursif stored procedure. Fungsi dari 

stored procedure ini yaitu   untuk memanggil suatu data dalam tabel. 

Dengan memakai   stored procedure SQL tidak akan melakukan 

loading semua tabel yang terrelasi, tetapi langsung melakukan filtering 

inberdasar  query yang kita maksud. Stored procedure menyimpan 

statement-statement SQL dalam sebuah berkas yang disimpan di database 

server, sehingga dari sisi performa eksekusi, kegunaan jaringan, dan 

keamanan, stored procedure banyak dipakai sebagai solusi akses data.  

 

 

 

Gambar 5.1 Ilustrasi Stored Procedure 

  49  

Proses Query meliputi; Pengecekan Syntax, Pemilihan execution 

plan yang paling optimal, dan Eksekusi query. Query yang ada di SP 

sudah di-compile terlebih dahulu, jadi ada 1 step yang di-skip pada SP. 

Compile maksudnya yaitu   pemilihan mana execution plan yang paling 

optimal. 

 

5.1.1 Format Penulisan Stored procedure 

Ada 4 proses yang dapat terjadi dalam stored procedure, yaitu 

sebagai berikut. 

1. Membuat Prosedur (CREATE) 

Contoh: CREATE PROCEDURE sp_name ([proc_parameter 

[,…]]) [characteristic..] routine_body 

2. Memanggil Prosedur (CALL) 

Contoh: CALL sp_name 

3. Menampilkan Prosedur (SHOW) 

Contoh: SHOW {PROCEDURE|FUNCTION} status; 

4. Menghapus Prosedur (DROP) 

Contoh: DROP {PROCEDURE|FUNCTION} [IF EXIST] sp_name 

Format penulisan perintah stored procedure yaitu   sebagai berikut. 

 

delimeter // 

create procedure NamaTabel(in NamaField_TipeData_LebarData, 

in…) 

begin 

select * from NamaDatabase 

end // 

delimeter; 

 

Penggunaan perintah delimiter dipakai  untuk memberi tahu shell 

myql soal delimiter (akhir statement) yang dipakai , secara default 

delimiter yang memakai   tanda titik koma (;) jadi bila ada tanda ; 

MySQL akan mengartikan akhir dari statement, pada contoh di atas 

delimeter yang dipakai  // jadi akhir statementnya yaitu   //, hal ini 

dilakukan karena di dalam badan procedure (antara begin …. end) 

memakai   titik koma (;) sebagai akhir suatu statement. 

 50 

Dalam membuat stored procedure kita dapat membuat variabel yang 

dipakai  untuk menyimpan procedure ke penyimpanan hasil dengan 

segera, yaitu dengan mendeklarasikan variabel dengan perintah berikut: 

DECLARE nama variabel tipe data (ukuran) DEFAULT nilai 

default; 

Contoh : 

DECLARE total_sales INT DEFAULT 0 

Selanjutnya untuk memberikan nilai ke variabel dapat dilakukan 

dengan beberapa cara yaitu sebagai berikut. 

1. memakai   perintah SET 

Contoh : DECLARE total_bayar INT DEFAULT 0 

SET total_bayar =0 

2. memakai   perintah SELECT … INTO 

Contoh: DECLARE total_bayar INT DEFAULT 0 

SELECT COUNT(*) INTO total_bayar FROM pemesanan 

Dalam sebuah stored procedure suatu variabel hanya berlaku di 

dalam ruang lingkup nya masing-masing, yaitu di antara BEGIN dan END, 

dan sebuah variabel yang di awali dengan tanda @, disebut dengan 

variabel session, yang tetap ada hingga session berakhir. 

 

5.1.2 Parameter dalam Stored procedure 

Parameter dalam Stored procedure terdiri dari 3 bentuk, yaitu 

sebagai berikut. 

1. IN  

Mode Default, dapat dipakai  di dalam sebuah stored procedure, 

namun stored procedure tidak dapat mengubah nilainya. 

2. OUT  

Parameter ini dapat di rubah oleh sebuah stored procedure yang 

dilewatinya. 

3. INOUT  

Dapat melewati stored procedure dan mendapatkan kembali 

nilainya yang berbeda dari program yang memanggil. 

Syntax untuk mendefinisikan sebuah parameter sebagai berikut. 

MODE nama_parameter tipe_parameter (ukuran 

parameter); 

  51  

5.1.3 Keuntungan kegunaan Stored procedure 

Keuntungan dari penggunaan stored procedure yaitu   sebagai berikut. 

1. Dapat meningkatkan performance aplikasi, karena Stored procedure 

dapat di simpan dan di compile di katalog database sehingga dapat 

di proses lebih cepat di bandingkan SQL yang tidak di-compile dari 

kode aplikasi. 

2. Mengurangi traffic antara aplikasi dan database server. Aplikasi 

hanya mengirim nama stored procedure untuk mengeksekusi SQL. 

3. Dapat dipakai  kembali, penggunaan Stored procedure dapat di 

akses hak nya oleh aplikasi melalui database administrator. 

 

5.1.4 Kekurangan kegunaan Stored procedure 

Kekurangan dari penggunaan stored procedure yaitu   sebagai berikut. 

1. Dapat mengakibatkan database server membutuhkan memory dan 

prosessor lebih tinggi. 

2. Stored procedure hanya berisi SQL deklaratif, sehingga sangat sulit 

untuk menulis sebuah procedure dengan kompleksitas logika. 

3. Stored procedure tidak dapat dijalankan di berbagai RDBMS, 

termasuk MySQL. 

4. Membutuhkan keahlian khusus untuk menulis dan memelihara 

stored procedure. 

 

5.2 Uji Coba 

Membuat stored procedure tabel data_penerbangan, jika ingin 

menambah data di tabel data_penerbangan tetapi data ini  sudah ada di 

table data_penerbangan maka yang terjadi yaitu   proses Update pada 

kota_tujuan dan jam_tiba, tetapi jika data yang ingin ditambah tidak ada di 

table Barang maka akan dilakukan proses Insert seluruh data pada tabel 

data_penerbangan.  

  

 52 

1. Buat stored procedure dengan studi kasus seperti di atas. 

 

 

 

a. DELIMITER yaitu   untuk memberi tahu kepada MySQL soal 

delimiter yang dipakai , secara default memakai   ; jadi bila 

ada tanda ; MySQL akan mengartikan akhir dari statement, pada 

contoh di atas delimeter yang dipakai  // jadi akhir statementnya 

yaitu   //. 

b. CREATE PROCEDURE yaitu   header untuk membuat procedure. 

c. BEGIN untuk memulai instruksi dari procedure. 

d. If, Then, dan Else yaitu   untuk memberikan perintah-perintah yang 

akan berjalan dalam procedure ini . 

e. END If yaitu   untuk menghentikan proses tindakan procedure yang 

dibuat. 

f. END yaitu   untuk mengakhiri proses. 

 

2. Tampilkan table data_penerbangan sebelum proses call, agar dapat 

mengetahui bagaimana perubahan table sesudah  proses call 

dilakukan dengan perintah SELECT * FROM data_penerbangan//. 

 

Gambar 5.2 Membuat Stored procedure sp_maskapai 

  53  

 

 

3. Lakukan proses call dengan data yang belum ada di table 

data_penerbangan seperti berikut. 

CALL sp_maskapai3 ('SSPD', 'LionAir', 'Banjarmasin', 

'Samarinda', '2020-01-06', '08:25:00.000000', 

'10:25:00.000000', 'E', '3', '45'); 

 

 

 

Terjadi pertambahan data dalam table data_penerbangan karena 

pemanggilan data yang dilakukan oleh “call” sebelumnya belum ada  

pada tabel data_penerbangan. 

 

4. Lakukan lagi proses call dengan data yang sudah ada di table 

data_penerbangan untuk memperbarui data yang ada seperti berikut. 

CALL sp_maskapai3 ('ACDG', 'Lion Air', 'Banjarmasin', 

'Arab Saudi', '2020-01-06', '08:25:00.000000', 

'23:25:00.000000', 'E', '3', '45');  

 

 

Gambar 5.3 Menampilkan tabel data_penerbangan 

 

Gambar 5.4 Proses Call sp_maskapai 

 54 

 

 

Terjadi pembaharuan data pada field kota_tujuan dan jam_tiba 

karena data yang dimasukkan sudah tersimpan dalam tabel 

data_penerbangan sehingga hanya terjadi update atau pembaharuan pada 

field tertentu / yang diperbaharui saja. 

 

5. Jika ingin melihat status dari stored procedure dapat dilakukan 

dengan perintah berikut. 

SHOW PROCEDURE STATUS; 

 

 

 

Maka terlihat hasil dari stored procedure yang telah dibuat. 

 

6. Jika Ingin menghapus stored procedure dapat dilakukan dengan 

perintah berikut. 

DROP + PROCEDURE + sp_name; 

 

 

Gambar 5.5 Proses Call sp_maskapai 

 

Gambar 5.6 Menampilkan Status Stored procedure 

  55  

 

 

Maka prosedur sp_maskapai telah terhapus, untuk memastikannya 

maka dapat memakai   perintah yang dapat menampilkan status 

prosedur. 

 

5.3 Soal Latihan 

Buatlah procedure untuk mengubah daftar menu pada dbcaffe, 

ketika proses call dijalankan maka menu ditambahkan (proses insert) 

kedalam daftar menu jika tidak ada kd_menu yang sama tapi jika kd_menu 

yang diinputkan ada yang sama dengan kd_menu di daftar menu maka 

menu akan diedit (proses update) sesuai dengan yang diinputkan. 

1. Tampilkan data awal sebelum proses pemanggilan call pada Tabel 

menu. 

2. Selanjutnya lakukan perintah call dan buat perintah menjalankan 

instruksi insert dan update.  

 

Gambar 5.7 Drop Procedure 

 56 

BAB 6 

FUNCTION 

 

 

 

Capaian Pembelajaran 

1. Mampu memahami lebih lanjut tentang perintah SQL function pada 

DBMS MySQL. 

2. Mampu mengimplementasikan pembuatan function yang diperlukan 

pada DBMS MySQL. 

 

6.1 Function 

Function yaitu   sebuah kumpulan statement yang akan 

mengembalikan sebuah nilai balik pada pemanggilnya. Nilai yang 

dihasilkan function harus ditampung kedalam sebuah variabel. Fungsi 

merupakan suatu bagian dari program yang dipakai  untuk mengerjakan 

suatu tugas tertentu yang menghasilkan suatu nilai untuk dikembalikan ke 

program pemanggil dan letaknya dipisahkan dari bagian program yang 

memakai  nya.  

 

6.1.1 Perbedaan Function dan Procedure 

Function akan mengembalikan suatu nilai pada pemanggilnya, 

sedangkan procedure tidak akan mengembalikan nilai apapun pada fungsi 

pemanggilnya. Fungsi (Function) yaitu   suatu bagian dari program yang 

dipergunakan untuk mengerjakan suatu tugas tertentu yang menghasilkan 

suatu nilai untuk dikembalikan ke program pemanggil dan letaknya 

dipisahkan dari bagian program yang memakai  nya. 

 

6.1.2 Kegunaan Function 

Kegunaan dari function yaitu   sebagai berikut. 

1. Menghindari pengulangan, tujuannya untuk menghindari penulisan 

bagian kode program berulang-ulang.  

  57  

2. Penataan program, program yang besar dan kompleks dibagi-bagi 

menjadi aktivitas yang berbeda dan ditempatkan dalam subrutine 

yang terpisah, sehingga setiap aktivitas bisa ditulis dan diperiksa 

secara mandiri.  

3. Kemandirian, mempunyai variabel “private” yaitu variabel yang 

tidak bisa diakses program pemanggil atau subrutin lain. 

 

6.1.3 Alasan membuat function di MySQL 

Alasan membuat function di MySQL yaitu   sebagai berikut. 

1. Penggunaan Menjadi Lebih Mudah 

Dengan kita membuat function berarti kita telah meringkas beberapa 

perintah SQL menjadi satu perintah saja, sehingga dalam penggunaanya 

menjadi mudah. Mudah di sini berarti user atau pengguna tidak perlu 

mengetahui isi dari fungsi ini . Contohnya seperti kita memakai   

fungsi string yang telah disediakan oleh MySQL, kita cukup mengetahui 

cara penggunaannya saja tanpa harus mengetahui perintah SQL yang 

berada di dalam fungsi string ini . 

 

2. Keamanan Lebih Terjaga 

Dengan membuat function kita dapat memberi hak akses kepada 

masing-masing user. Kita cukup memberikan hak akses untuk 

menjalankan function saja kepada user, tanpa harus memberikan hak akses 

untuk memanipulasi Tabel aslinya secara langsung. Selain itu, user juga 

tidak akan mengetahui perintah yang berada di dalam function ini , 

karena telah disembunyikan. 

 

6.1.4 Bentuk umum membuat function 

Bentuk umum dalam membuat function yaitu   sebagai berikut. 

 

CREATE FUNCTION ([parameter,[…]]) 

RETURNS tipe_data_hasil_kembalian 

RETURN isi_fungsi 

 

Keterangan dari bentuk umum di atas yaitu   sebagai berikut. 

 58 

1. DELIMITER untuk memberi tahu kepada myql soal delimiter yang 

dipakai , secara default memakai   ;. 

2. CREATE FUNCTION header untuk membuat function. 

3. RETURNS yaitu   untuk menentukan tipe data yang di return oleh 

function. 

4. DETERMINISTIC/ NOT DETERMINISTIC untuk menentukan 

yang bisa memakai   function ini yaitu   user pembuatnya saja 

(determinisric) atau siapa saja (not determinisric).  

5. BEGIN END yaitu   body dari function jadi semua SQL nya di tulis 

disini. 

 

6.2 Uji Coba 

Ketika ingin memakai   jasa penerbangan para calon penumpang 

maskapai biasanya mencek terlebih dahulu apakah masih ada slot kursi di 

salah satu maskapai yang dipakai , oleh karena itu pada BAB ini kita 

akan memakai   yang namanya function (fungsi) untuk memudahkan 

para calon penumpang yang ingin mengecek slot kursi pesawat di salah 

satu maskapai yang diinginkan dengan memakai   FUNCTION.  

Contoh kasusnya yaitu   menampilkan jumlah kursi penerbangan 

yang tersedia pada setiap nomor penerbangan di tabel data_penerbangan. 

1. Buat function. 

 

 

  

 

Gambar 6.1 Membuat Function jmlh_kursi 

  59  

2. Tampilkan table data_penerbangan untuk perbandingan. 

 

 

 

3. Untuk menampilkan hasil function, lakukan proses select, tampilkan 

 jumlah kursi yang ada pada no penerbangan “BA817”. 

 

 

 

4. Untuk melihat status dari function. 

 

 

  

 

Gambar 6.2 Menampilkan Data Tabel data_penerbangan 

 

Gambar 6.3 Menampilkan Hasil Function jmlh_kursi 

 

Gambar 6.4 Menampilkan Status Function 

 60 

6.3 Soal Latihan 

1. Buatlah function fc_catatan di database dbcaffe dan tampilkan tabel 

transaksi. 

2. Tampilkan catatan untuk harga 20000. 

3. Tampilkan catatan untuk harga 35000. 

4. Tampilkan status dari function. 

  

  61  

BAB 7 

TRIGGER 

 

 

 

Capaian Pembelajaran 

1. Mampu memahami lebih lanjut tentang perintah SQL Trigger pada 

DBMS MySQL. 

2. Mampu mengimplementasikan pembuatan trigger pada DBMS 

MySQL. 

 

7.1 Trigger 

Trigger merupakan stored procedure yang dijalankan secara 

automatis saat user melakukan modifikasi data pada tabel. Modifikasi data 

yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan 

DELETE. INSERT , UPDATE dan DELETE bisa digabung jadi satu 

trigger yang dinamakan Multiple Trigger. Event ini  meliputi operasi 

yang biasa dilakukan dalam mengolah database, seperti berikut. 

1. DML (Data Manipulation Language) yang meliputi DELETE, 

INSERT atau UPDATE. 

2. DDL (Data Definition Language) yang meliputi CREATE, ALTER 

atau DROP. 

3. Operasi database lainnya, seperti SERVERERROR, LOGON, 

LOGOFF, STARTUP atau SHUTDOWN). 

Keterangan dari bentuk perintah umum dalam membuat trigger, 

yaitu sebagai berikut. 

1. nama_trigger yaitu   nama trigger yang dibuat sesuai dengan 

karakteristik penamaan dalam MySQL. 

2. [BEFORE|AFTER] menunjukkan waktu untuk mengeksekusi 

trigger secara otomatis, apakah sebelum atau sesudah perubahan 

pada row data table. Jadi pilihannya yaitu   AFTER atau BEFORE. 

 62 

3. [INSERT | UPDATE | DELETE] dipakai  untuk menentukan 

event yang menyebabkan terjadinya trigger, pilihan event ini  

terdiri dari INSER, UPDATE dan DELETE. 

4. nama_table menunjukkan table yang akan dilakukan trigger di 

dalamnya. 

5. trigger_body menunjukkan statement perintah dalam MySQL yang 

akan otomatis dijalankan jika event sedang aktif. 

 

7.1.1 Jenis Trigger 

Trigger terdiri dari beberapa jenis, yaitu sebagai berikut. 

1. Application trigger, diaktifkan pada saat terjadi event yang 

berhubungan dengan sebuah aplikasi. 

2. Database trigger, diaktifkan pada saat terjadi event yang 

berhubungan dengan data (seperti operasi DML) atau event yang 

berhubungan dengan sistem (semisal logon atau shutdown) yang 

terjadi pada sebuah skema atau database. 

 

7.1.2 Sintaks Penulisan 

Sintak penulisan dari database trigger, berisi komponen berikut. 

1. Trigger timing:  

a. BEFORE : trigger dijalankan sebelum DML event pada tabel. 

b. AFTER : trigger dijalankan sesudah  DML event pada tabel. 

c. INSTEAD OF : trigger dijalankan pada sebuah view. 

2. Trigger event: INSERT, UPDATE atau DELETE  

3. Nama tabel: nama tabel atau view yang berhubungan dengan 

trigger. 

4. Tipe trigger: baris atau pernyataan (statement). 

5. Klausa WHEN: untuk kondisi pembatasan. 

6. Trigger body: bagian prosedur yang dituliskan pada trigger. 

 

7.1.3 Tipe Trigger 

Tipe trigger ada 2 macam, yaitu sebagai berikut. 

1. Statement, trigger dijalankan sekali saja pada saat terjadi sebuah 

event dan tidak mempengaruhi satupun baris dari event yang terjadi. 

  63  

2. Row, trigger dijalankan pada setiap baris yang dipengaruhi oleh 

terjadinya sebuah event. Row trigger tidak akan jalan jika event dari 

trigger tidak terpengaruh. 

Berikut sintak atau cara penulisan pembuatan DML Statement 

trigger.  

 

CREATE [OR REPLACE] TRIGGER trigger_name  

timing  

event1 [OR event2 OR event3] 

ON table_name  

trigger_body 

 

Berikut contoh pembuatan DML Statement trigger. 

 

CREATE OR REPLACE TRIGGER secure_emp  

BEFORE INSERT ON employees  

BEGIN  

IF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN')) OR 

(TO_CHAR(SYSDATE,'HH24:MI') NOT BETWEEN '08:00' AND 

'18:00') 

THEN RAISE_APPLICATION_ERROR (-20500,'Penyisipan data 

pada table  

EMPLOYEES hanya diperbolehkan selama jam kerja');  

END IF;  

END// 

 

7.2 Uji Coba 

Contoh kasusnya ialah trigger tiket, mengurangi jumlah kursi_eko 

di tabel data_penerbangan ketika insert (menambahkan / memasukkan) 

data baru jika berfield “Ekonomi” di table tiket, dan mengurangi jumlah 

kursi_bis di table data_penerbangan ketika insert (menambahkan/ 

memasukkan) data baru jika berfield “ Bisnis” pada table tiket. 

  

 64 

1. Buat syntax trigger. 

 

 

 

Mengapa memakai   delimiter? Karena MySQL secara default 

menganggap titik koma (;) sebagai delimiter/pembatas akhir dari suatu 

perintah/statement. Akhirnya pembuatan objek yang memiliki beberapa 

statement tidak akan berjalan sempurna karena "berhenti di tengah jalan". 

Solusi terhadap masalah di atas yaitu   memakai   delimiter 

selain tanda titik koma (;) misalkan dengan garis pipa (|). Penggunaannya 

sangat sederhana, sebelum mendefinisikan objek ini  kita gunakan 

statement "DELIMITER" diikuti tanda pemisah baru. sesudah  di akhir 

pendefinisian kita kembalikan delimiter lagi kepada tanda titik koma. 

 

2. Tampilkan table data_penerbangan sebelum proses insert, agar 

dapat mengetahui perubahan pada data_penerbangan. 

 

 

 

3. Lakukan proses insert untuk kejadian ‘kurang’ berfield “Ekonomi” 

untuk membuat variasi data dan tampilkan data Penerbangan dan 

tiket untuk melihat hasil perubahan. 

 

 

Gambar 7.1 Membuat Trigger InsertTiket 

 

Gambar 7.2 Menampilkan Data Tabel data_penerbangan 

  65  

 

 

Selanjutnya yaitu   tampilkan perubahan data yang terjadi di tabel tiket. 

 

 

 

Selanjutnya perhatikan perubahan yang terjadi pada tabel data 

penerbangan. 

 

 

  

 

Gambar 7.3 Menambahkan data pada Tabel Tiket (Ekonomi) 

 

Gambar 7.4 Menampilkan Data Tabel Tiket 

 

Gambar 7.5 Menampilkan Data Tabel data_penerbangan 

 66 

4. Membuat trigger berfield bisnis. 

 

 

 

Lakukan proses insert untuk kejadian ‘kurang’ berfield “Bisnis” 

untuk membuat variasi data dan tampilkan data Penerbangan dan tiket 

untuk melihat hasil perubahan. 

 

 

 

 

 

 

Gambar 7.6 Membuat Trigger Field Bisnis 

 

Gambar 7.7 Menambahkan data pada tabel tiket 

 

Gambar 7.8 Menampilkan Data Tabel Tiket 

  67  

 

 

5. Menampilkan status trigger. 

 

 

 

7.3 Soal Latihan 

Lakukan uji coba di atas pada database dbcaffe sebelumnya. 

Buatlah sebuah trigger delete yang menghubungkan antara tabel menu 

dengan tabel log_menu. Jika ada salah satu dari setiap data pada tabel 

menu yang dihapus, maka data ini  akan muncul di tabel log_menu. Isi 

field pada log_menu sendiri yaitu   semua field yang ada pada tabel menu 

dan satu field baru yaitu tanggal_hapus sebagai keterangan kapan data 

ini  dihapus. 

1. Membuat trigger tg_logmenu untuk tabel menu. Trigger ini 

menyimpan setiap baris data yang dihapus pada tabel menu dan 

akan ditampilkan pada tabel log_menu dengan keterangan tanggal 

data ini  dihapus. 

2. Melihat isi data awal pada tabel menu sebelum menghapus salah 

satu data. 

 

Gambar 7.9 Menampilkan Data Tabel data_penerbangan 

 

Gambar 7.10 Menampilkan Status Trigger 

 68 

3. Menghapus data pada tabel menu. Yaitu penghapusan menu pasta 

dengan kd_menu M21. 

4. Melihat perubahan isi data pada tabel menu. kd_menu M21 sudah 

dihapus. 

5. Melihat perubahan isi data pada tabel log_menu. kd_menu M21 

yang sudah dihapus tadi akan muncul ditabel ini dengan keterangan 

tanggal kapan data itu dihapus. 

6. Melihat status dari trigger.  

  69  

BAB 8 

VIEW/INDEX 

 

 

 

Capaian Pembelajaran 

1. Mampu memahami lebih lanjut tentang perintah SQL view dan 

index pada DBMS MySQL. 

2. Mampu mengimplementasikan pembuatan view dan index pada 

DBMS MySQL. 

 

8.1 Perintah View 

View yaitu   perintah query yang disimpan pada database dengan 

suatu nama tertentu, sehingga bisa dipakai  setiap saat untuk melihat 

data tanpa menuliskan ulang query ini . 

1. Kegunaan VIEW yaitu   sebagai berikut. 

a. Menyembunyikan Kolom atau Baris Fungsi built-in layer. 

b. Menampilkan hasil dari perhitungan. 

c. Menyediakan level isolasi antara data tabel dan View data pengguna. 

d. Memberikan trigger berbeda pada view yang berbeda dari tabel yang 

sama. 

e. Memberikan proses permission yang berbeda untuk view yang 

berbeda dari tabel yang sama. 

f. Menyembunyikan Sintak SQL yang rumit. 

 

2. Keuntungan VIEW yaitu   sebagai berikut. 

a. Membatasi akses data. 

b. Menyediakan data yang independen. 

c. Menampilkan view yang berbeda-beda dengan data yang sama. 

d. Memudahkan query yang kompleks. 

Cara membuat View yaitu sebagai berikut. 

  

 70 

CREATE VIEW view_name AS  

SELECT column_name(s) 

FROM table_name 

WHERE condition 

Untuk menampilkan Query yang telah dibuat : 

SELECT * FROM nama_view 

Untuk menghapus Query view yang kita buat : 

DROP nama_view 

 

8.2 Uji Coba View 

Studi kasus yang terjadi pada database penerbangan yaitu 

menampilkan data pemesanan tiket pelanggan (pemesanan.no_pemesanan, 

tiket.no_tiket, pelanggan.email_pel, data_penerbangan.no_penerbangan) 

dengan 4 tabel yang digabungkan dan menampilkan data cek jadwal 

(pemesanan.no_pemesanan, pelanggan.email_pel, 

data_penerbangan.no_penerbangan) dengan 3 tabel yang digabungkan. 

1. Membuat View Pemesanan Tiket Pelanggan. 

Untuk dapat membuat tabel pemesanan tiket kita dapat 

memakai   perintah ‘create view’ dan untuk menampilkan tabel 

ini  memakai   perintah ‘select’. 

 

2. Buat view pada tabel pemesanan, tiket, pelanggan dan data 

penerbangan, sesuaikan field-nya pada setiap tabel seperti di bawah 

ini.  

 

 

  

Gambar 8.1 Membuat View Tabel pemesanan_tiket 

  71  

3. Lalu tampilkan hasil view yang dibuat. 

 

 

 

4. Membuat View Cek Jadwal 

Untuk dapat membuat tabel pemesanan tiket kita dapat 

memakai   perintah ‘create view’ dan untuk menampilkan tabel 

ini  memakai   perintah ‘select’ 

 

5. Buat view pada table pemesanan, pelanggan dan data penerbangan, 

sesuaikan fieldnyac pada setiap tabel seperti di bawah ini.  

 

 

  

 

Gambar 8.2 Menampilkan Hasil View 

 

Gambar 8.3 Membuat View Tabel cek_jadwal 

 72 

6. Lalu tampilkan hasil view yang telah dibuat. 

 

 

 

8.3 Membuat Index 

Index sering disebut sebagai peningkat performa dari database. 

Penggunaan tabel index ini mirip dengan indeks yang ada di bagian 

belakang sebuah buku. Index yaitu   sebuah tabel spesial dalam sistem 

database yang dapat mempercepat pencarian (query) data. Index 

merupakan objek struktur data tersendiri yang tidak bergantung pada 

struktur tabel. Setiap index terdiri dari nilai kolom dan penunjuk (atau 

ROWID) ke baris yang berisi nilai ini . 

Index ini bertujuan untuk mempercepat pencarian data inberdasar  

kolom tertentu. Apabila pada suatu tabel tidak ada index, maka dalam 

proses pencarian data membutuhkan waktu yang cukup lama (apabila data 

dalam jumlah yang besar). 

Berikut ini yaitu   beberapa alasan mengapa index diperlukan. 

1. Kolom sering dipakai  dalam klausa WHERE atau dalam kondisi 

JOIN. 

2. Kolom berisi nilai dengan jangkauan yang luas. 

3. Kolom berisi banyak nilai null. 

4. Tabel berukuran besar. 

Adapun beberapa kondisi di mana tidak diperlukannya index, yaitu ketika: 

1. tabel berukuran kecil, 

 

Gambar 8.4 Menampilkan Hasil View 

  73  

2. kolom jarang dipakai  sebagai kondisi dalam pencarian (query), 

dan 

3. tabel sering di-update. 

Cara membuat Index yaitu mengikuti tahapan berikut ini. 

1. Bentuk perintah index unik. 

CREATE UNIQUE INDEX nama_index ON nama_tabel 

nama_kolom_yang_diindex); 

2. Index lebih dari satu kolom.  

CREATE UNIQUE INDEX nama_index ON nama_tabel 

nama_kolom_yang_diindex1, 

nama_kolom_yang_diindex2); 

3. Index yang nilai kolom dalam sejumlah record boleh sama. 

CRETAE INDEX nama_index ON nama_tabel 

nama_kolom_yang_diindex); 

Cara melihat hasil index yaitu seperti tahapan berikut ini. 

1. Melihat index dengan satu kolom 

SELECT nama_kolom_index FROM nama_tabel 

WHERE nama_field(primary key) ; 

2. Melihat index lebih dari satu kolom 

SELECT nama_kolom_index1, nama_kolom_index2 FROM 

nama_tabel WHERE” nama_field(primary key)”; 

Cara mengahapus index yaitu sebagai berikut. 

DROP INDEX nama_index ON nama_tabel; 

  

8.4 Uji Coba Index 

1. Proses Index untuk satu kolom 

Pada proses index, apabila pada tabel Pemesanan memiliki data 

yang sangat banyak, dan kita ingin mencari harga_total sesuai dengan 

no_pesanan pelanggan maka akan membutuhkan waktu yang cukup lama 

(buffering). Jadi, dengan memakai   index, waktu yang diperlukan 

menjadi lebih singkat dan kita dapat melihat satu kolom index yaitu 

harga_total. 

  

 74 

a. Membuat index yang hanya berfokus pada tabel pemesanan. 

 

 

 

b. Menampilkan harga_total pada tabel pemesanan yang no_pesanan 

nya “30363921”. 

 

 

 

2. Proses index unique lebih dari satu kolom 

Pada proses index unique lebih dari satu kolom ini kita dapat melihat 

dua kolom index pada tabel data_penerbangan yaitu kolom Jam_Berangkat 

dan Terminal. Sehingga lebih mempermudah kita untuk mencari 

informasi. 

a. Membuat index unique yang hanya berfokus pada tabel 

data_penerbangan. 

 

 

  

 

Gambar 8.5 Membuat Index harga_total 

 

Gambar 8.6 Menampilkan Hasil Index 

 

Gambar 8.7 Membuat Index Unique lihat_jadwal 

  75  

b. Menampilkan Jam_Berangkat dan Terminal pada tabel 

data_penerbangan yang No_Penerbangan “BA817”. 

 

 

 

8.5 Soal Latihan 

1. Proses View 

a. Buat view dari tabel menu pilih nm_menu, dari tabel transaksi pilih 

total_harga, id_pelanggan dan tgl_trx. 

b. Tampilkan view yang telah dibuat. 

2. Proses Index 

a. Buat index untuk melihat harga pada tabel menu. 

b. Tampilkan harga di tabel menu yang memiliki kd_menu M10. 

 

  

 

Gambar 8.8 Menampilkan Hasil Index Unique 

 76 

BAB 9 

TRANSACTION 

 

 

 

Capaian Pembelajaran 

1. Mampu memahami lebih lanjut tentang perintah SQL transact SQL 

pada DBMS MySQL. 

2. Mampu mengimplementasikan pembuatan transact SQL yang 

diperlukan pada DBMS MySQL. 

 

9.1 Transaction 

Transaction atau transaksi yaitu   sekelompok berurutan operasi 

manipulasi database yang dilakukan seolah-olah sebagai satu kesatuan 

unit tunggal, dengan kata lain transaksi tidak akan lengkap jika semua 

operasi dalam kelompok berhasil. jika ada salah satu operasi yang gagal 

maka seluruh transaksi akan gagal. Transaksi yaitu   implementasi dari 

suatu operasi yang dapat mengakses database dan juga dapat mengubah 

data dari database ini . 

DBMS atau “Database Management System” atau yang dipakai  

untuk membangun basis data yang berbasis komputerisasi harus 

mendukung operasi transaksi yang kita gunakan. Artinya operasi transaksi 

harus dikerjakan secara menyeluruh (tidak parsial), karena dapat 

mengakibatkan basis data yang tidak konsisten 

 

9.1.1 Tujuan Transaksi 

Adapun tujuan daripada Transaksi yaitu   untuk menghindari suatu 

masalah pada data yang ada di database kita, seperti data yang rusak atau 

bahkan data yang sampai hilang. Dan untuk mendukung Transaksi ini  

agar dapat tetap konsisten, maka Transaksi wajib mempunyai beberapa 

sifat-sifat sebagai berikut. 

1. Atomicity, yaitu   keseluruhan dari tindakan yang harus diselesaikan 

atau dibatalkan. 

  77  

2. Consistency, yakni menunjukkan konsistensi data yang ada sesudah  

terjadi transaksi. 

3. Isolation, data yang sedang di lakukan perubahan tidak boleh 

diakses oleh lebih dari satu operasi. 

4. Durability, memastikan data yang telah disimpan (committed data) 

disimpan oleh sistem sebagaimana keadaannya, bahkan jika dalam 

keadaan kegagalan sistem dan restart sistem, data ini  tersedia 

dalam tahapan dan keadaan yang benar.  

Dari suatu transaksi akan menghasilkan dua kemungkinan sebagai 

berikut. Kemungkinan pertama yaitu   jika transaksi ini  dilakukan 

dengan baik dalam arti keseluruhan maka dapat dikatakan bahwa transaksi 

itu dapat di-commit dan database ini  menjadi konsisten baru. Jika 

transaksi yang sudah pasti di commit maka transaksi ini  tidak dapat 

dikembalikan lagi, kecuali melakukan transaksi ulang seperti 

mengambilkan ke transaksi ke sebelumnya memakai   beberapa 

operasi. Kemungkinan kedua yaitu   jika transaksi ini  tidak dilakukan 

atau dibatalkan maka dapat dikatakan bahwa database yang melakukan 

transaksi ini  menjadi seperti keadaan konsisten sebelumnya 

(rollback). 

 

9.1.2 Status Transaksi 

Adapun status dari transaksi yaitu   sebagai berikut. 

1. Aktif (active) yaitu   status awal (initial state) dari suatu operasi 

transaksi yang menandakan bahwa transaksi ini  dapat 

dieksekusi. 

2. Berhasil sebagian (partially committed) yaitu   status di mana 

operasi transaksi yang bertepatan pada operasi terakhir dalam 

transaksi ini  sudah diselesaikan. 

3. Gagal (failed) yaitu   status di mana operasi transaksi berada pada 

terhentinya pengeksekusian, padahal operasi belum selesai. 

4. Batal (aborted) yaitu   status di mana operasi transaksi tidak jadi 

dikerjakan dan pastinya sebelum itu data sudah dikembalikan ke 

bentuk semulanya. 

5. Berhasil sempurna (committed) yaitu   status di mana operasi 

transaksi dianggap telah selesai dalam keseluruhan sehingga 

 78 

database dapat menampilkan perubahan-perubahan yang kita 

inginkan pada operasi transaksi ini . 

Operasi Transaksi memiliki beberapa state yang bertujuan untuk 

mengetahui kapan suatu transaksi itu mulai dan kapan suatu transaksi 

berhenti sebagai berikut. 

1. BEGIN_TRANSACTION dipakai  untuk memulai transaksi. 

2. READ/WRITE dipakai  untuk operasi-operasi pada operasi 

transaksi. 

3. END_ TRANSACTION dipakai  untuk mengakhir transaksi, dan 

kemudian operasi transaksi akan dicek, jika ada yang ingin dibuat 

permanen atau digagalkan. 

4. COMMIT_TRANSACTION dipakai  untuk memberikan signal 

jika operasi transaksi telah sukses. 

5. ROLLBACK (abort) dipakai  untuk memberikan signal jika 

operasi transaksi ada yang gagal dan perubahan pada database harus 

dihapuskan. 

Untuk melakukan suatu transaksi dipakai  syntax berikut. 

 

BEGIN {TRAN | TRANSACTION } 

[ transaction_name |@tran_name_variable] 

[ WITH MARK [ ‘description’] ] 

[ database_operation ] 

COMMIT { TRAN | TRANSACTION } 

[ transaction_name | 

@tran_name_variable ] 

 

  

  79  

9.1.3 Alur Operasi Transaksi 

Adapun contoh alur dari pembuatan operasi transaksi sebagai berikut. 

 

 

 

Dalam membuat dan menjalankan transaction ada beberapa hal 

yang perlu diperhatikan sebagai berikut. 

1. Mesin Penyimpanan 

MySQL menyiapkan berbagai jenis penyimpanan, yang akan 

menetapkan bagaimana sebenarnya suatu table disimpan. Secara tipe yang 

dipakai untuk table yaitu   MyISAM. Mengenai jenis mesin penyimpan 

lain yang didukung oleh MySQL antara lain Memory (Heap), BDB 

(BerkeleyDB), dan InnoDB.  

Secara khusus tipe InnoDB akan dibahas karena mendukung fitur 

transaksi. Fitur ini sangat bermanfaat karena mengharuskan penanganan 

Commit dan Rollback, yang biasanya tersedia pada DBMS komersial.  

Perlu diketahui, walau InnoDB mendukung transaksi, bukan berarti 

InnoDB lebih baik daripada tipe seperti MyISAM. Bila Anda memang 

tidak memerlukan transaksi akan lebih baik kalau memakai   tipe 

seperti MyISAM dikarenakan kinerja menjadi lebih cepat. Selain itu, perlu 

juga diketahui bahwa implementasi InnoDB masih memiliki beberapa 

batasan, antara lain tidak mendukung tipe kolom spasial dan proses untuk 

menghitung semacam SELECT COUNT(*) FROM table berjalan lebih 

lama dari pada pada MyISAM karena implementasi InnoDB secara 

internal tidak tercatat jumlah baris dalam tabel.  

 

Gambar 9.1 Alur Operasi Transaksi 

 80 

2. Menciptakan Tabel Bertipe InnoDB 

Untuk menciptakan tabel bertipe InnoDB, perlu penambahan 

ENGINE=InnoDB di bagian belakang pernyataan CREATE TABLE. 

Untuk mempraktikkan hal ini, berikan perintah berikut terlebih dulu untuk 

mengaktifkan database test. 

 

 

 

Dengan perintah di atas maka mesin penyimpanan akan mengubah 

tabel barang menjadi tabel dengan tipe InnoDB 

 

3. Memahami Transaksi 

Transaksi yaitu   sederetan operasi yang berkedudukan sebagai satu 

kesatuan proses. Dalam dunia nyata, proses pengambilan uang melalui 

ATM merupakan contoh sebuah transaksi, yang mencakup pemasukan 

kartu ATM, pemasukan nomor PIN (Personal Identification Number), 

penentuan jumlah uang yang akan diambil, hingga pengambilan uang itu 

sendiri. Dalam proses transaksi seperti itu, ada dua kemungkinan yang 

seharusnya dipenuhi, yaitu: 

a. transaksi dianggap berhasil jika semua proses berjalan lancar dan 

b. transaksi dianggap gagal kalau ada salah satu bagian proses yang 

gagal. 

 

4. Cara memakai   Transaksi  

Setiap klien MySQL yang melakukan koneksi ke MySQL server 

memakai   mode AUTOCOMMIT, yang berarti setiap perintah SQL 

dengan sendirinya akan mengalami proses COMMIT. COMMIT sendiri 

berarti “menyetujui perintah untuk segera dimutakhirkan ke database”. 

Untuk mematikan mode AUTOCOMMIT, maka dapat 

memakai   perintah SET AUTOCOMMIT=0. inberdasar  kondisi 

ini  suatu perintah SQL yang melaksanakan perubahan data di 

 

Gambar 9.2 Penerapan perintah membuat tabel dengan engine InnoDB 

  81  

database dapat disetujui untuk mengeksekusi perintah simpan secara 

menetap dengan memakai   perintah COMMIT atau dapat pula 

dibatalkan dengan memakai   perintah ROLLBACK. 

 

5. Problem pada Multiuser 

Sedangkan lingkungan yang multiuser, akses terhadap database 

dilakukan sejumlah orang. Pada keadaan seperti ini, muncul masalah yang 

mungkin terjadi. Berikut yaitu   masalah yang perlu diketahui. 

a. Pemutakhiran yang hilang (lost update). 

Masalah operasi update yang sukses dari seorang pengguna 

kemudian diikuti oleh operasi update dari pengguna lain. 

 

 

 

inberdasar  ilustrasi di atas tampak bahwa dari transaksi 

pertama menghasilkan update kursikosong sebanyak 10 kursi yang 

seharusnya sesudah  dikurangi dengan update perintah yang kedua 

yaitu sisa kursikosongnya yaitu   sebanyak 3 kursi, tetapi 

dikarenakan terjadi kesalahan dikarenakan eksekusi proses yang 

bersamaan menyebabkan data menjadi tidak valid, dan ini memiliki 

pengaruh yang sangat besar dalam suatu proses bisnis. 

b. Pembacaan Kotor. 

Masalah terjadi saat suatu transaksi membaca data dari transaksi 

lain yang belum di-commit. 

 

Gambar 9.3 Ilustrasi Masalah Pemutakhiran yang Hilang 

 82 

 

 

Dari ilustrasi Gambar 9.4 di atas terlihat bahwa proses transaksi 

kedua melihat kolom kursikosong bernilai 10, tetapi ternyata 

beberapa saat kemudian nilai kolom ini  telah berubah menjadi 

15 yang diakibatkan perintah ROOLBACK dari transaksi pertama. 

c. Pembacaan yang Tidak Sama. 

Kasus ini terjadi jika seseorang pemakai menemukan nilai yang 

berubah dalam jangka waktu yang sangat pendek. Contoh dapat 

dilihat pada gambar berikut: 

 

 

 

inberdasar  ilustrasi pada Gambar 9.5 terlihat bahwa kondisi 

yaitu kolom kursikosong bernilai 15, tetapi beberapa saat terjadi 

 

Gambar 9.4 Permasalahan akibat pembacaan kotor 

 

Gambar 9.5 Permasalahan akibat pembacaan tidak sama 

  83  

proses update data yaitu data kursikosong berubah menjadi 10. Hal 

seperti ini menjadi masalah bagi transaksi kedua berupa suatu proses 

yang membaca data dalam waktu yang lama, misalnya membuat 

sebuah ringkasan  

d. Penyisipan yang Tak Dikehendaki.  

Penyisipan yang tidak dikehendaki yaitu   kasus khusus dari 

pembacaan yang tidak sama. Hal ini terjadi apabila instruksi 

INSERT saat pengguna lain sedang melakukan suatu query ini  

belum selesai. Penyisipan ini akan menimbulkan perbedaan hasil 

saat diakses oleh pengguna lain. 

 

6. Penanganan Multiuser 

Metode penanganan multiuser (yaitu suatu proses pengaksesan basis 

data secara bersamaan oleh sejumlah pemakai) atau disebut dengan istilah 

penguncian (locking). Penguncian yang dilakukan oleh para pemakai dapat 

dilakukan terhadap semua baris atau sejumlah baris dalam database. 

Melihat kondisi ini  perintah bawaan MYSQL akan melakukan 

penguncian secara otomatis pada baris yang diakses, tetapi ada saatnya 

penguncian harus dilakukan secara manual.  

 84 

 

 

inberdasar  pada contoh di atas, user yang terhubung dengan 

database dapat melakukan operasi untuk mengubah baris ini  sebelum 

dilakukan UPDATE. Hasilnya, perintah UPDATE yang mengubah jumlah 

menjadi 10 dapat memberikan hasil yang salah terhadap kolom ini . 

Jika dalam pengelolaan database Anda tidak mau orang lain dapat 

mengubah baris ini  sebelum pemakai pertama memberikan 

COMMIT, maka dapat menambahkan perintah FOR UPDATE pada 

perintah SELECT. Perhatikan gambar berikut: 

 

Gambar 9.6 Contoh aktivitas dalam transaksi 

  85  

 

 

Pada contoh di atas, baris dengan kd_jadwal=’jw212’ akan tetap 

terkunci dan akan terbuka ketika dilaksanakannya atau diberikan perintah 

COMMIT. Penguncian dilakukan dengan FOR UPDATE pada pernyataan 

SELECT. Dari ilustrasi gambar 9.7 di atas maka sebelum COMMIT, orang 

lain tidak dapat mengubah baris (harus menunggu sampai pemakai yang 

mengunci memberikan COMMIT atau waktu tunggu habis). 

Selain FOR UPDATE, perintah LOCK IN SHARE MODE juga bisa 

dapat dipakai . Kedua perintah ini  mempunyai kemampuan 

melindungi dari memungkinkan orang lain melakukan perubahan pada 

baris yang dikunci. Perbedaannya, SELECT-FOR UPDATE hanya bisa 

dijalankan oleh satu pengguna, sedangkan SELECT-FOR SHARE MODE 

bisa dijalankan oleh banyak pengguna. 

 

Gambar 9.7 Cara mengunci baris pada database multiuser 

 86 

7. Penguncian Secara Otomatis  

MySQL memakai   penguncian secara otomatis terhadap 

sejumlah perintah yang memperbaharui database. Beberapa pernyataan 

yang memakai   penguncian secara otomatis yaitu   sebagai berikut. 

a. Pernyataan UPDATE, saat UPDATE dilakukan, semua baris yang 

diubah akan dikunci. Jika ada yang memperbaharui baris yang sama, 

maka pengguna yang akan melakukan UPDATE selanjutnya harus 

menunggu sampai UPDATE yang pertama mengalami COMMIT.  

b. Pernyataan INSERT, pernyataan INSERT membuat semua kunci 

primer atau kunci yang unik akan dikunci. Hal inilah yang 

memungkinkan pencegahan kunci yang identik.  

c. Pernyataan SELECT dengan klausa FOR UPDATE dan LOCK IN 

SHARE MODE Saat SELECT dengan FOR UPDATE dan LOCK 

IN SHARE MODE dilakukan, semua baris yang dihasilkan akan 

dikunci sampai ada COMMIT atau ROLLBACK. 

 

9.2 Uji Coba 

Ketika pelanggan ingin bepergian memakai   pesawat, yang 

pertama kali yang dilakukan yaitu   memesan tiket, nah di dalam database 

penerbangan memiliki tabel data_penerbangan yang berisi beberapa field 

yang datanya tidak bisa dirubah ketika ada pelanggan telah memesan tiket 

(terutama di bagian jumlah kursi pesawat yang tidak ter-update apakah 

berkurang atau tidak). Untuk itu pada BAB ini kita akan membahas 

tentang tabel transaksi, yang nantinya akan berfungsi untuk mengubah dari 

tabel data_penerbangan jika ada pelanggan memesan tiket. 

Dari kasus di atas dapat didapat jika kita memakai   tabel 

transaksi maka tabel ini  akan melakukan insert di table tiket dan 

mengurangi jumlah kursi_eko di tabel data_penerbangan jika 

no_penerbangan pada tabel tiket sama, namun jika no_penerbangan tidak 

sama, maka akan melakukan rollback. Otomatis karena di 

data_penerbangan ada  2 kelas yakni Ekonomi dan Bisnis maka kita 

harus membuatkan 2 tabel transaksi yang masing-masing untuk kelas 

ini . 

  

  87  

1. Membuat Tabel Transaksi Ekonomi. 

Membuat transact untuk kejadian ‘pengurangan’ dengan nama 

“insert_kursiEko” yang dikombinasikan dengan procedure sesuai studi 

kasus di atas. 

 

 

 

Menampilkan kondisi tabel tiket dan tabel data_penerbangan agar 

nantinya kita dapat melihat perubahan di tabel ini . 

 

 

 

 

 

Lakukan proses call insert_kursiEko dan lihat perubahan stok pada 

tabel data_penerbangan apakah stok dari kursi_eko akan berkurang. 

 

 

Gambar 9.8 Procedure Transaction insert_kursiEko 

 

Gambar 9.9 Menampilkan Data Tabel Tiket 

 

Gambar 9.10 Menampilkan Data Tabel data_penerbangan 

 88 

 

 

 

 

 

 

Bisa dilihat perbedaan sesudah  kita memanggil insert_kursiEko maka 

akan berubah pula di kedua tabel di atas. 

 

2. Membuat Tabel Transaksi Bisnis. 

Membuat transact untuk kejadian ‘pengurangan’ dengan nama 

“insert_kursiBis” yang dikombinasikan dengan procedure sesuai studi 

kasus di atas. 

 

 

Gambar 9.11 Proses Call insert_kursiEko 

 

Gambar 9.12 Menampilkan Data Tabel Tiket 

 

Gambar 9.13 Menampilkan Data Tabel data_penerbangan 

  89  

 

 

Menampilkan kondisi tabel tiket dan tabel data_penerbangan agar 

nantinya kita dapat melihat perubahan ditabel ini .  

 

 

 

 

 

Lakukan proses call insert_kursiBis dan lihat perubahan stok pada 

tabel data_penerbangan apakah stok dari kursi_bis akan berkurang. 

 

 

 

Gambar 9.14 Membuat Procedure Transaction insert_kursiBis 

 

Gambar 9.15 Menampilkan Data Tabel Tiket 

 

Gambar 9.16 Menampilkan Data Tabel data_penerbangan 

 

Gambar 9.17 Proses Call insert_kursiBis 

 90 

 

 

 

 

Bisa dilihat perbedaan sesudah  kita memanggil inser_kursiBis maka 

akan berubah pula di kedua tabel di atas. 

 

9.3 Soal Latihan 

inberdasar  database dbcaffe buatlah transaksi dengan ketentuan 

sebagai berikut. 

1. Buat transact untuk kejadian ‘tambah’ dengan nama 

“insert_tambah” yang dikombinasikan dengan procedure. 

2. Lakukan proses call insert_tambah dan lihat perubahan stok table 

tb_buku apakah stok bertambah. 

 

 

 

  

 

Gambar 9.18 Menampilkan Data Tabel Tiket 

 

Gambar 9.19 Menampilkan Data Tabel data_penerbangan