Anda di halaman 1dari 7

Lab.

Actvity 3: Fungsi-Fungsi MySql Advance


Database Systems:
Agenda.
• Pendahuluan
• Menggabungkan 2 Tabel
• Menggabungkan Banyak Tabel
• Fungsi Having
• Fungsi SubSelect
• Transaksi

Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 1 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 2

Pendahuluan
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 Menggabungkan 2 Tabel
• Kebutuhan untuk menampilkan data dari 2 buah tabel. • Untuk menggabungkan 2 tabel dapat
• Suatu kewajaran jika satu database memiliki menggunakan fungsi WHERE dan JOIN.
hubungan (relasi) dari 2 atau lebih tabel. • Terdapat 2 perintah yang berhubungan dengan
• Relasi antara tabel dapat berupa relasi 1 – 1, 1 – M, fungsi JOIN
dan M – M. 1. Inner JOIN
• Penyajian pemodelan data konseptual disebut dengan 2. Outer JOIN
class diagram.

Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 5 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 6

Menggabungkan 2 Tabel Menggabungkan 2 Tabel

Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 7 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 8
Menggabungkan 2 Tabel Menggabungkan 2 Tabel

Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 9 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 10

Menggabungkan 2 Tabel
Menggabungkan 2 Tabel
Fungsi WHERE
• Outer JOIN
SELECT tabel1.(nama_field), tabel2.(nama_field) Fungsi outer join terbagi menjadi 2:
FROM tabel1, tabel2 WHERE table1.PK =
tabel2.FK;
1. Left Join
Fungsi JOIN 2. Right Join
• Inner JOIN Left Join
Sintaks:
Sintaks:
SELECT tabel1.(nama_field), tabel2.
(nama_field) FROM tabel1 INNER JOIN tabel2 ON
table1.PK = tabel2.FK;
SELECT tabel1.(nama_field), tabel2.
(nama_field) FROM tabel1 LEFT JOIN tabel2 ON
table1.PK = tabel2.FK;
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 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 | 14

Menggabungkan Banyak Tabel


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 Menggabungkan Banyak Tabel
• Adanya kebutuhan untuk menampilkan data dari • Fungsi Group By
banyak tabel. Sintaks:
• Secara umum sintaks yang digunakan sama SELECT tabel1.(nama_field), tabel2.
(nama_field), tabel3.(nama_field), [...] FROM
dengan ketika menggabungkan 2 buah tabel. tabel1, tabel2, [...] WHERE table1.PK =
• Untuk menggabungkan banyak tabel dapat tabel2.FK, table2.PK = tabel3.FK, [...] GROUP
menggunakan fungsi Group By BY nama_field [WITH ROLLUP];

• Fungsi group by digunakan untuk


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

Fungsi HAVING
Fungsi HAVING
• Kebutuhan untuk menyeleksi suatu fungsi agregasi
• Sintaks
• Fungsi agregasi adalah sebuah fungsi yang SELECT tabel1.(nama_field),
menerapkan operasi aritmatika dalam prosesnya, COUNT(tabel.nama_field) as nama_field FROM
seperti SUM, COUNT, AVG, dll. tabel1, tabel2, [...] WHERE table1.PK =
tabel2.FK, table2.PK = tabel3.FK, [...] HAVING
• Penggunaan fungsi HAVING dilakukan untuk [kondisi];
mengakomodasi penggunaan fungsi agregasi yang
tidak dapat diakomodir oleh fungsi WHERE

Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 19 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 20
Fungsi SubSELECT Transaksi
• Kebutuhan untuk menampilkan data yang • MySQL merupakan software database berbasis
kondisinya merupakan hasil dari query lain. client- server.
• Sintaks • MySQL dapat melayani banyak pengguna dalam
SELECT nama_field1, nama_field2, [...] FROM satu waktu secara bersamaan.
tabel1, tabel2, [...] WHERE nama_field IN • Pengaksesan oleh banyak user dalam waktu
(SELECT...);
bersamaan dapat mengakibatkan collision antar data
pengguna.
• Collision antar data pengguna dapat menyebabkan
data tidak valid.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 21 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 22

Transaksi
Transaksi
• Untuk mengatur proses query dalam suatu sistem yang
• Terdapat 4 prinsip dasar transaksi yang biasa
memiliki banyak pengguna (multi-user), dalam
disingkat dengan ACID, yaitu:
MySQL dapat memanfaatkan 2 hal sebagai berikut:
1. Atomicity. Atom merupakan komponen terkecil dari materi
1. mengunci tabel (table-locking). Cara ini dapat dilakukan jika
yang tidak dapat dibagi-bagi lagi. Prinsip ini berlaku pada
tipe tabel yang digunakan adalah MyISAM, dan
proses transaksi. Semua proses (perintah) yang ada di dalam
2. dapat menggunakan perintah BEGIN, COMMIT dan satu paket transaksi harus selesai semua atau tidak selesai
ROLLBACK. Cara ini dapat dilakukan jika tipe tabel adalah sama sekali. Dengan kata lain, dalam satu transaksi tidak
tabel transaksi, yaitu InnoDB. boleh ada proses (perintah) yang gagal dieksekusi.

Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 23 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 24
Transaksi
Database Systems:
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 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 26

Anda mungkin juga menyukai