Handout TIF201 Lab Activity 3

Lab. Actvity 3: Fungsi-Fungsi MySql Advance

Database Systems:

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

Agenda.







1

Pendahuluan

Pendahuluan
Menggabungkan 2 Tabel
Menggabungkan Banyak Tabel

Fungsi Having
Fungsi SubSelect
Transaksi

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

2

Pendahuluan
• Merealisasikan pemodelan data konseptual
menggunakan tipe tabel InnoDB
• Tipe tabel InnoDB dipilih karena proses transaksi akan
dilakukan terhadap tabel-tabel dalam sistem

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

3

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |


4

Menggabungkan 2 Tabel
• Kebutuhan untuk menampilkan data dari 2 buah tabel.
• Suatu kewajaran jika satu database memiliki hubungan
(relasi) dari 2 atau lebih tabel.
• Relasi antara tabel dapat berupa relasi 1 – 1, 1 – M, dan
M – M.
• Penyajian pemodelan data konseptual disebut dengan
class diagram.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

• Untuk menggabungkan 2 tabel dapat menggunakan
fungsi WHERE dan JOIN.
• Terdapat 2 perintah yang berhubungan dengan fungsi
JOIN
1. Inner JOIN
2. Outer JOIN

5


Menggabungkan 2 Tabel

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

Menggabungkan 2 Tabel

7

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

6

Menggabungkan 2 Tabel

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

8

Menggabungkan 2 Tabel


Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

Menggabungkan 2 Tabel

9

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

Menggabungkan 2 Tabel

10

Menggabungkan 2 Tabel
• Outer JOIN
Fungsi outer join terbagi menjadi 2:
1. Left Join
2. Right Join

Fungsi WHERE

SELECT tabel1.(nama_field), tabel2.(nama_field)
FROM tabel1, tabel2 WHERE table1.PK = tabel2.FK;

Fungsi JOIN
• Inner JOIN

Left Join
Sintaks:

Sintaks:
SELECT tabel1.(nama_field), tabel2.(nama_field)
FROM tabel1 INNER JOIN tabel2 ON table1.PK =
tabel2.FK;
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

SELECT tabel1.(nama_field), tabel2.(nama_field)
FROM tabel1 LEFT JOIN tabel2 ON table1.PK =
tabel2.FK;
11


Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

12

Menggabungkan 2 Tabel

Menggabungkan Banyak Tabel

Right Join
Sintaks:
SELECT tabel1.(nama_field), tabel2.(nama_field)
FROM tabel1 RIGHT JOIN tabel2 ON table1.PK =
tabel2.FK;

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

13

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |


Menggabungkan Banyak Tabel

14

Menggabungkan Banyak Tabel
id_produk

harga

nm_produk

B0001

2500

Penggaris 30cm

B0002

1000


Penghapus

B0003

1500

Pensil 2B

B0004

3000

Buku Tulis

B0005

4500

Jangka


• Isikan tabel tb_produk berdasarkan data pada tabel di atas.
• Isikan tabel tb_detail_produk dengan 10 buah record
dengan id_pesan mengacu kepada tb_pesan.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

15

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

16

Menggabungkan Banyak Tabel
• Adanya kebutuhan untuk menampilkan data dari banyak
tabel.
• Secara umum sintaks yang digunakan sama dengan
ketika menggabungkan 2 buah tabel.
• Untuk menggabungkan banyak tabel dapat menggunakan
fungsi Group By
• Fungsi group by digunakan untuk mengelompokkan

hasil query berdasarkan kriteria atau kondisi tertentu.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

Menggabungkan Banyak Tabel
• Fungsi Group By
Sintaks:
SELECT tabel1.(nama_field), tabel2.(nama_field),
tabel3.(nama_field), [...] FROM tabel1, tabel2,
[...] WHERE table1.PK = tabel2.FK, table2.PK =
tabel3.FK, [...] GROUP BY nama_field [WITH
ROLLUP];

17

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

Fungsi HAVING
• Kebutuhan untuk menyeleksi suatu fungsi agregasi
• Fungsi agregasi adalah sebuah fungsi yang menerapkan
operasi aritmatika dalam prosesnya, seperti SUM,

COUNT, AVG, dll.
• Penggunaan fungsi HAVING dilakukan untuk
mengakomodasi penggunaan fungsi agregasi yang tidak
dapat diakomodir oleh fungsi WHERE
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

18

Fungsi HAVING
• Sintaks
SELECT tabel1.(nama_field),
COUNT(tabel.nama_field) as nama_field FROM
tabel1, tabel2, [...] WHERE table1.PK =
tabel2.FK, table2.PK = tabel3.FK, [...] HAVING
[kondisi];

19

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

20

Fungsi SubSELECT
• Kebutuhan untuk menampilkan data yang kondisinya
merupakan hasil dari query lain.
• Sintaks

• MySQL merupakan software database berbasis clientserver .
• MySQL dapat melayani banyak pengguna dalam satu
waktu secara bersamaan.
• Pengaksesan oleh banyak user dalam waktu bersamaan
dapat mengakibatkan collision antar data pengguna.
• Collision antar data pengguna dapat menyebabkan data
tidak valid.

SELECT nama_field1, nama_field2, [...] FROM
tabel1, tabel2, [...] WHERE nama_field IN
(SELECT...);

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

21

Transaksi
• Untuk mengatur proses query dalam suatu sistem yang
memiliki banyak pengguna (multi-user), dalam MySQL
dapat memanfaatkan 2 hal sebagai berikut:

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

22

Transaksi
• Terdapat 4 prinsip dasar transaksi yang biasa disingkat
dengan ACID, yaitu:

1. mengunci tabel (table-locking). Cara ini dapat dilakukan jika
tipe tabel yang digunakan adalah MyISAM, dan
2. dapat menggunakan perintah BEGIN, COMMIT dan
ROLLBACK. Cara ini dapat dilakukan jika tipe tabel adalah
tabel transaksi, yaitu InnoDB.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

Transaksi

23

1. Atomicity. Atom merupakan komponen terkecil dari materi
yang tidak dapat dibagi-bagi lagi. Prinsip ini berlaku pada
proses transaksi. Semua proses (perintah) yang ada di dalam
satu paket transaksi harus selesai semua atau tidak selesai
sama sekali. Dengan kata lain, dalam satu transaksi tidak
boleh ada proses (perintah) yang gagal dieksekusi.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

24

Transaksi
2. Consistency. Bahwa kegagalan satu proses dalam transaksi
tidak akan mempengaruhi transaksi lainnya.
3. Isolation. Secara sederhana, bahwa data yang sedang
digunakan dalam satu transaksi, tidak dapat digunakan oleh
transaksi lainnya sebelum seluruh proses transaksi yang
pertama selesai.
4. Durability. Jika sebuah transaksi selesai dieksekusi, hasilnya
tetap tercatat dengan baik.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

25

Database Systems:

Lab. Activity 3: Fungsi-Fungsi MySQL Advance |

26