Teknik Informatika

Kamis, 28 Maret 2013

JOIN ANTAR TABEL

0 komentar
JOIN ANTAR TABEL

Join merupakan sebuah operasi yang digunakan untuk mendapatkan data
gabungan dari dua buah tabel atau lebih. Operasi ini digunakan dalam perintah
SELECT dan biasanya dipakai untuk memperoleh detail data dari tabel – tabel
yang saling terkait (memiliki relasi). Misalnya karena tabel mahasiswa hanya
memuat kode_kelas saja tanpa nama kelas maka kita harus melakukan join antara
tabel mahasiswa dengan tabel kelas yang memuat kolom nama_kelas.

2 JENIS OPERASI JOIN
Secara umum terdapat tiga jenis operasi join, yaitu: Cross join, Inner join dan
Outer join.

2.1 Cross Join / Cartesian Join

Join jenis ini menghasilkan kombinasi semua baris yang terdapat dalam
tabel – tabel yang digabungkan baik yang berpasangan maupun yang tidak
berpasangan. Pada kenyataan join jenis ini tidak akan pernah dipakai. Meskipun
begitu join jenis inilah yang merupakan dasar dari perintah join. Berikut ini
contoh dari perintah cross join:

SELECT * FROM Mahasiswa, KRS
SELECT Mahasiswa.Nama, Mata_Kuliah.Nama_MK FROM
Mahasiswa, Mata_Kuliah



2.2 Inner Join

Join jenis ini hanya menghasilkan kombinasi semua baris yang memiliki
pasangan saja. Baris yang tidak memiliki pasangan tidak akan ditampilkan. Cara
penulisan perintah inner join ada beberapa cara, yaitu:

1. SELECT Daftar_Kolom FROM Tabel1, Tabel2 WHERE
Tabel1.Primary_key = Tabel2.Foreign_key
SELECT * FROM Mahasiswa, KRS WHERE Mahasiswa.NIM =
KRS.NIM

2. SELECT Daftar_Kolom FROM Tabel1 INNER JOIN Tabel2 ON
Tabel1.Primary_key = Tabel2.Foreign_key
SELECT * FROM Mahasiswa INNER JOIN KRS ON
Mahasiswa.NIM = KRS.NIM

3. SELECT Daftar_Kolom FROM Tabel1 JOIN Tabel2 ON
Tabel1.Primary_key = Tabel2.Foreign_key
SELECT * FROM Mahasiswa JOIN KRS ON Mahasiswa.NIM =
KRS.NIM

2.3 Outer Join

Hampir sama denagn inner join, hanya saja baris yang tidak memiliki
pasangan tetap akan ditampilkan. Join jenis ini di bagi lagi menjadi 3, yaitu:

a. Left Outer Join

 Baris – baris yang tidak memiliki pasangan pada tabel yang ada
disebelah kiri kata “JOIN” akan tetap ditampilkan. Contoh:
SELECT * FROM Mahasiswa LEFT OUTER JOIN KRS ON
Mahasiswa.NIM = KRS.NIM
SISTEM BASIS DATA
S1 TEKNIK INFORMATIKA
STMIK “AMIKOM” YOGYAKARTA
2007
3

b. Right Outer Join

 Baris – baris yang tidak memiliki pasangan pada tabel yang ada
disebelah kanan kata “JOIN” akan tetap ditampilkan.
SELECT * FROM Mahasiswa LEFT OUTER JOIN KRS ON
Mahasiswa.NIM = KRS.NIM

c. Full Outer Join

 Baris – baris yang tidak memiliki pasangan pada semua tabelakan
tetap ditampilkan.
SELECT * FROM Mahasiswa FULL OUTER JOIN KRS ON
Mahasiswa.NIM = KRS.NIM
Continue reading →
Senin, 25 Maret 2013

Jawaban Database SQL - Subquery

1 komentar
 PERTEMUAN V – PRAKTIKUM - Subquery
Jawaban

Database : Download
Soal        : Soal Subquery


--1 Menampilkan informasi data barang yang stoknya
--di atas stok barang Cooler 478 Cool Master (single-row subquery)
SELECT NAMA, STOK
FROM BARANG
WHERE STOK > (SELECT STOK FROM Barang WHERE NAMA='cooler 478 Cool Master')

--2 Menampilkan data barang yang masuk dalam golongan ACCESSORIES (single-row subquery)
SELECT NAMA AS BARANG, STOK
FROM BARANG
WHERE GOLONGAN_ID = (SELECT KODE FROM GOLONGAN WHERE KETERANGAN = 'ACCESSORIES')

--3 Menampilkan data customer yang berasal dari wilayah SRAGEN, KLATEN dan SEMARANG (multi-row subquery)
SELECT NAMA,ALAMAT,WILAYAH_ID
FROM CUSTOMER
WHERE WILAYAH_ID IN (SELECT KODE FROM WILAYAH WHERE KETERANGAN = 'SRAGEN' OR KETERANGAN ='KLATEN' OR KETERANGAN= 'SEMARANG')

--4 Menampilkan golongan barang yang belum ada item barangnya (multi-row subquery)
SELECT KODE, KETERANGAN
FROM GOLONGAN
WHERE KODE NOT IN (select GOLONGAN_ID  from BARANG)

--5
SELECT KODE, BARANG.NAMA AS NAMABARANG
FROM BARANG
WHERE KODE IN (SELECT BARANG_ID FROM ITEM_JUAL)

--6 Menampilkan data barang yang sudah pernah dijual dan stoknya habis (multi-row subquery)
SELECT KODE, NAMA
FROM BARANG
WHERE KODE IN(SELECT BARANG_ID FROM ITEM_JUAL) AND STOK IN (SELECT STOK FROM BARANG WHERE STOK=0)

--7 Menampilkan informasi penjualan masing-masing barang (subquery sebagai column expression)
SELECT NAMA AS BARANG,(SELECT SUM(JUMLAH) FROM ITEM_JUAL where  BARANG.KODE=ITEM_JUAL.BARANG_ID)
AS [JUMLAH TERJUAL]FROM BARANG

--8 Menampilkan informasi jumlah transaksi masing-masing customer (join dan fungsi aggregate)
SELECT NAMA, COUNT(*) AS [JUMLAH TRANSAKSI]
FROM CUSTOMER INNER JOIN JUAL
ON CUSTOMER.KODE=JUAL.CUSTOMER_ID
GROUP BY NAMA

--9 Menampilkan informasi customer yang jumlah transaksinya di atas
--  customer AGA COMPUTER (join, fungsi aggregate, having dan subquery)
SELECT NAMA, COUNT(*) AS [JUMLAH TRANSAKSI]
FROM CUSTOMER INNER JOIN JUAL
ON CUSTOMER.KODE=JUAL.CUSTOMER_ID
GROUP BY NAMA
HAVING COUNT(*) > (SELECT COUNT(*) FROM JUAL WHERE CUSTOMER_ID = (SELECT KODE FROM CUSTOMER WHERE NAMA = 'AGA COMPUTER'))

--10 Menampilkan informasi mutasi (keluar/masuk) barang (subquery sebagai column expression)
SELECT BARANG.NAMA,(SELECT SUM(JUMLAH) FROM ITEM_BELI WHERE BARANG.KODE=ITEM_BELI.BARANG_ID) as [Jumlah Masuk],
(SELECT SUM(JUMLAH) FROM ITEM_JUAL WHERE BARANG.KODE=ITEM_JUAL.BARANG_ID) [jumlah Keluar], ((SELECT SUM(JUMLAH) FROM ITEM_BELI WHERE BARANG.KODE=ITEM_BELI.BARANG_ID)-(SELECT SUM(JUMLAH) FROM ITEM_JUAL WHERE BARANG.KODE=ITEM_JUAL.BARANG_ID) ) AS SISA
FROM BARANG


SELECT DISTINCT * FROM JUAL
SELECT * FROM ITEM_JUAL
select * from GOLONGAN
select GOLONGAN_ID, SUM(STOK)  from BARANG GROUP BY GOLONGAN_ID

SELECT nama AS barang, (SELECT SUM(jumlah) FROM item_jual WHERE barang_id= barang.kode)
AS [jumlah terjual]
FROM barang
Continue reading →

Soal Database SQL - Subquery

0 komentar
PERTEMUAN V – PRAKTIKUM - Subquery

Berikut ini adalah soal-soal subquery lengkap dengan database dan jawaban
Database : Download
Jawaban  : Lihat


Untuk dapat mencapai kompetensi mata kuliah, mahasiswa harus mencapai kompetensi-kompetensi dasar sebagai berikut:
1. Mampu menguasai penggunaan perintah SQL SELECT dalam menampilkan data dari DBMS dan kemampuan yang dimiliki oleh perintah SQL SELECT.
2. Mampu membedakan single-row/multi-row subquery.
3. Mampu menggunakan subquery baik sebagai kondisi maupun sebagai column expression.
4. Mampu menggabungkan operasi join, fungsi aggregate dan subquery


Soal :

  1. Menampilkan informasi data barang yang stoknya di atas stok barang Cooler 478 Cool Master (single-row subquery)                                                                                    
  2. Menampilkan data barang yang masuk dalam golongan ACCESSORIES (single-row subquery)                                                                                                                                         
  3. Menampilkan data customer yang berasal dari wilayah SRAGEN, KLATEN dan SEMARANG (multi-row subquery)                                                                                           
  4. Menampilkan golongan barang yang belum ada item barangnya (multi-row subquery)
  5. Menampilkan data barang yang sudah pernah dijual (multi-row subquery)
  6. Menampilkan data barang yang sudah pernah dijual dan stoknya habis (multi-row subquery)       
  7. Menampilkan informasi penjualan masing-masing barang (subquery sebagai column expression)
  8. Menampilkan informasi jumlah transaksi masing-masing customer (join dan fungsi aggregate)
  9. Menampilkan informasi customer yang jumlah transaksinya di atas customer AGA COMPUTER (join, fungsi aggregate, having dan subquery)                                                                      
  10. Menampilkan informasi mutasi (keluar/masuk) barang (subquery sebagai column expression)

>> Selesai <<


Continue reading →