XII. MATERI BASIS DATA
A. Materi
1) Sudut Pandang Basis Data
Basis data bukan hanya sekedar penyimpanan data secara elektronis dengan bantuan komputer. Artinya tidak semua bentuk penyimpanan data secara elektronis bisa disebut basis data. Kita dapat menyimpan dokumen berisi data dalam file teks dengan program pengolah kata, file spread sheet dan lain-lain, tetapi tidak dapat disebut sebagai basis data. Karena di dalamnya tidak ada pemilahan dan pengelompokkan data sesuai jenis dan fungsi data, sehingga akan menyulitkan pencarian data kelak. Hal yang sangat ditonjolkan dalam basis data adalah pengaturan, pemilahan, pengelompokkan, dan pengorganisasian data yang akan disimpan sesuai fungsi dan jenisnya. Pemilahan, pengelompokan, pengorganisasian dapat berbentuk sejumlah file atau tabel terpisah atau dalam bentuk pendefinisian kolom- kolom field-field data dalam setiap file dan tabel.
2) Data Selection
Adapun untuk melihat data (Selection), Query yang digunakan adalah SELECT diikuti beberapa pernyataan khusus yang berhubungan dengan tabel yang diseleksi. Pada dasarnya, SELECT merupakan perintah DML (Data Manipulation Language) untuk menghasilkan recordset dengan mengekstrak data dari database. Perintah SELECT ini sering dipakai dan memiliki bentuk yang kompleks. Bentuk sederhana dari SELECT adalah sebagai berikut.
SELECT select_list [INTO table_new] FROM table_source
[WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC] ]
Misalnya memiliki tabel nilai_siswa dengan field (kolom) nama, kelas, mapel, nilai, dan keterangan. Maka perintah SQL untuk menampilkan khusus pada field nama, mapel, dan nilai adalah sebagai berikut.
SELECT Nama, mapel, nilai FROM nilai_siswa
Namun jika ingin menampilkan seluruh field pada tabel Customer1 dapat menggunakan perintah asterik (*) sebagai berikut.
SELECT * FROM nilai_siswa
3) Select Multitable
Pada pembuatan suatu aplikasi, terkadang memerlukan tampilan data yang tidak hanya berasal dari 1 (satu) tabel, namun bisa dari beberapa tabel sekaligus. Misalnya ingin menampilkan nama buku yang dipinjam oleh siapa dan siapa petugasnya. Dari contoh tersebut, kita harus dapat menggabungkan minimal dua tabel, yaitu peminjaman, buku dan anggota. Atau menampilkan data peminjaman lengkap dengan petugas yang meminjakan, sehingga harus menggabungkan tabel peminjaman, buku, petugas dan anggota. Data yang tersimpan dalam database dapat bervariasi dalam hal jumlah dan tingkat kompleksitasnya.
4) Fungsi Select Multiple Table
Select multiple table berfungsi untuk menampilkan data yang berhubungan dari dua buah tabel, misalnya ingin menampilkan data nm_siswa dan nm_kelas tiap siswa. Pada tabel siswa, nama kelas siswa ditunjukkan oleh id_kelas agar dapat melihat langsung nm_kelas tiap siswa, maka perintah select multiple table dapat digunakan. Pada syntax from nama tabel siswa ditulis lebih dahulu dibandingkan nama tabel tb_kelas.
Hal tersebut menyebabkan data ascending menurut table tb_kelas. Misalnya data dalam tb_kelas pada urutan teratas adalah data BSD. Jika nama table tb_kelas ditulis lebih dulu maka data yang ditampilkan akan ascending sesuai dengan tabel siswa. Misalnya data tabel siswa pada urutan teratas adalah Yurizka.
Gambar 1.2 Data tabel siswa
Di dalam suatu RDBMS menjadi suatu kewajaran jika dalam satu database dapat terdiri dari beberapa tabel, di mana masing-masing tabel tersebut berhubungan (relasi) satu sama lain. Relasi antartabel dapat berupa relasi 1-1, 1-M, atau M-N. Misalnya tabel customer1 berhubungan dengan dt_pesan, dt_pesan dengan barang, dan lain-lain. Namun adakalanya memerlukan tampilan data yang tidak hanya berasal dari 1 (satu) tabel, tetapi bisa dari beberapa tabel sekaligus. Hal ini dapat dilihat pada gambar pemodelan data konseptual (class diagram). Misalnya dari class diagram ingin menampilkan nama customer1 beserta transaksi yang pernah dilakukannya. Oleh sebab itu, bisa dilakukan dengan menggabungkan minimal dua tabel, yaitu customer1 dan dt_pesan. Tabel customer1 hanya menampilkan id, nama, dan e-mail sebagai berikut.
Sedangkan tabel dt_pesan hanya menampilkan id_dt_pesan, id_cst, dan tgldt_pesan sebagai berikut.
Sedangkan untuk menampilkan data seperti tabel di bawah ini yang bisa menampilkan id_dt_pesan, id_cst, tgldt_pesan, dan nm_customer
Dengan menggunakan perintah sebagai berikut :
Select dt_pesan.id_dt_pesan, dt_pesan.id_cst, dt_pesan.tgldt_pesan, customer1.nm_customer from dt_pesan,customer1
Where dt_pesan.id_cst = customer1.id_cst
Untuk menggunakan beberapa tabel dapat menggunakan klausa where dengan menghubungkan primary key dan foreign key diantara tabel (kolom yang data isinya sama).
5) PERINTAH JOIN
Pada SQL terdapat sebuah perintah join yang berfungsi untuk menghubungkan tabel yang satu dengan tabel yang lain yang saling berhubungan atau berelasi. Tujuannya adalah untuk menampilkan beberapa data dari table yang berbeda dengan menggunakan satu perintah.
Perintah Join dikategorikan menjadi sebagai berikut:
A. INNER JOIN
Data yang akan ditampilkan pada perintah inner join hanya data yang memiliki pasangan saja, sedangkan data pada tabel yang tidak memiliki sebuah kesamaan maka data tersebut tidak akan ditampilkan. Inner Join identik dengan sebuah perintah yang digunakan untuk menampilkan sebuah data atau record dengan menghubungkan dua tabel atau lebih dalam satu perintah.
Gambar 1.3 Diagram venn untuk inner join
Format penulisan yang digunakan adalah sebagai berikut.
SELECT * FROM table_1 INNER JOIN table_2 ON table_1.PK = table_2.FK
Contoh :
SELECT * FROM post INNER JOIN category ON post.category_id=category.id_category;
Tabel akan digabungkan dua arah menggunakan Inner Join, sehingga tidak ada data yang NULL di satu sisi. Misalnya menggabungkan tabel customer1 dan dt_pesan dengan tujuan untuk menampilkan daftar customer1 yang pernah melakukan pemesanan (transaksi).
Cara penggabungan dengan Inner Join menggunakan bentuk umum sebagai
berikut:
SELECT table_1.*, table_2.* FROM table_1 INNER JOIN table_2 ON table_1.PK=table_2.FK;
Perintah SQL untuk menggabungkan tabel customer1 dan dt_pesan adalah
sebagai berikut:
SELECT customer1.id_cst, customer1.nm_customer1, dt_pesan.id_dt_pesan, dt_pesan.tgldt_pesan FROM customer1 INNER JOIN dt_pesan ON customer1.id_cst=dt_pesan.id_cst;
Hasilnya adalah sebagai berikut:
s
B. OUTER JOIN
Tabel yang akan digabungkan dengan Outer Join menjadi satu arah, sehingga terdapat data NULL (kosong) di satu sisi. Misalnya menggabungkan tabel customer1 dan dt_pesan untuk menampilkan daftar customer1 yang pernah melakukan pemesanan (transaksi). Secara umum, Outer Join terbagi menjadi sebagai berikut.
1). Left Join
LEFT OUTER JOIN dapat ditulis menggunakan dua cara, yaitu dengan klausa LEFT OUTER JOIN atau cukup dengan klausa LEFT JOIN saja. Left Join (left outer join) identik dengan suatu perintah yang digunakan untuk mengembalikan semua nilai dari tabel kiri ditambah dengan nilai dari tabel kanan yang sesuai (atau null jika tidak ada nilai yang sesuai).
Gambar 1.4 Left (outer) Join
Bentuk umum Left Join adalah sebagai berikut:
SELECT table_1.*, table_2.* FROM table_1 LEFT JOIN table_2 ON table_1.PK=table_2.FK;
Format penulisan query yang digunakan adalah sebagai berikut:
SELECT * FROM table_1 LEFT JOIN table_2 ON table_1.PK = table_2.FK
Contoh:
SELECT * FROM post LEFT JOIN category ON post.category_id=category.id_category;
Perintah SQL untuk menggabungkan tabel customer1 dan dt_pesan
menggunakan Left Join adalah sebagai berikut:
SELECT customer1.id_cst, customer1.nm_customer1, dt_pesan.id_dt_pesan, dt_pesan.tgldt_pesan
FROM customer1 LEFT JOIN dt_pesan ON customer1.id_cst=dt_pesan.id_cst;
Hasilnya adalah sebagai berikut:
Penggunaan Left Join juga akan menampilkan data customer1 dengan id CST03, walau pun customer1 tersebut belum pernah bertransaksi. Pada kolom id_dt_pesan dan tgldt_pesan untuk customer1 CST03 isinya NULL yang berarti pada tabel dt_pesan untuk customer1 tersebut benar-benar tidak ada. Pada dasarnya, fungsi dari Left Join hampir sama dengan Inner Join dan Right Join
2) Right Join
Secara mendasar, fungsi dari Right Join hampir sama dengan Inner Join, hanya pada Right Join akan membuat sebuah parameter pada sebelah kanan jika data pada table terdapat data atau record yang kosong atau tidak berelasi maka akan berisi NULL.
Gambar 1.5 Diagram venn untuk Right Join
Bentuk umum Right Join adalah sebagai berikut:
SELECT * FROM table_1 RIGHT JOIN table_2 ON table_1.PK = table_2.FK
Contoh :
SELECT * FROM post RIGHT JOIN category ON post.category_id=category.id_category;
Perintah SQL untuk menggabungkan tabel customer1 dan dt_pesan menggunakan Right Join adalah sebagai berikut:
SELECT customer1.id_cst, customer1.nm_customer1, dt_pesan.id_dt_pesan, dt_pesan.tgldt_pesan FROM customer1 RIGHT JOIN dt_pesan ON customer1.id_cst=dt_pesan.id_cst;
Hasilnya adalah sebagai berikut:
Tabel yang menjadi acuan pada Right Join adalah tabel sebelah kanan (tabel dt_pesan), sehingga semua isi tabel dt_pesan akan ditampilkan. Meskipun data customer1 tidak ada di tabel customer1, maka isi tabel dt_pesan tetap ditampilkan.
C. FULL JOIN
Penggunaan Full Join akan menghasilkan baris data jika ada data yang sama pada salah satu tabel. Bentuk umum Full Join adalah sebagai berikut:
SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2 column_name
Perhatikan bentuk implementasi sebagai berikut:
SELECT reg.nama,reg.email,order.no_order FROM reg FULL JOIN
order ON reg.id=order.id ORDER BY reg.nama
Komentar
Posting Komentar