SlideShare a Scribd company logo
1 of 43
Download to read offline
Praktikum Basis Data
             (Database Server MySQL)




                    JOIN




1   Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                   (Database Server MySQL)




    SKEMA RELASI YANG DIGUNAKAN


     CLASSICMODELS




2         Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                  (Database Server MySQL)




    CLASSICMODELS
3        Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                               (Database Server MySQL)




                             Jenis Join

    •   JOIN menggunakan operator “,” (koma)
    •   CROSS JOIN
    •   INNER JOIN
    •   NATURAL JOIN
    •   SELF JOIN
    •   LEFT OUTER JOIN
    •   RIGHT OUTER JOIN
    •   FULL OUTER JOIN (MySQL tidak support)



4                     Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                                  (Database Server MySQL)


         “,”, CROSS JOIN & [INNER] JOIN
                 (TANPA KONDISI)
    • Perintah “,”, CROSS JOIN dan [INNER] JOIN yang tanpa
      menggunakan kondisi akan menghasilkan suatu himpunan
      Cartesian product yang akan mengkombinasikan semua baris di
      tabel pertama dengan semua baris di tabel kedua.
    • Jika anda menggunakan join menggunakan perintah tersebut,
      maka jika tabel pertama terdiri dari 5 baris dan tabel kedua terdiri
      dari 3 baris maka akan menghasilkan baris sebanyak 15.
    • Di MySQL, ketiga jenis join tersebut akan menghasilkan hasil
      yang sama




5                        Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                                (Database Server MySQL)


        “,”, CROSS JOIN & [INNER] JOIN
                (TANPA KONDISI)
    SELECT EmployeeNumber,                     SELECT OfficeCode,
           LastName, OfficeCode                       City, Country
    FROM employees                             FROM offices




                …
                                               7 Rows



      23 Rows

6                      Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                                 (Database Server MySQL)


         “,”, CROSS JOIN & [INNER] JOIN
                 (TANPA KONDISI)
    CONTOH 1:
    SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
           o.OfficeCode, o.City, o.Country
    FROM employees e, offices o;               Perhatikan                         Alias Table:
                                                                       Tabel Employees  e
                                                                       Tabel Offices  o
    CONTOH 2:
    SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
           o.OfficeCode, o.City, o.Country
    FROM employees e CROSS JOIN offices o;

    CONTOH 3:
    SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
           o.OfficeCode, o.City, o.Country
    FROM employees e INNER JOIN offices o;             Hasil Eksekusi


7                       Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                       (Database Server MySQL)


    “,”, CROSS JOIN & [INNER] JOIN
            (TANPA KONDISI)




                                  …




        161 Rows  23 (employees) x 7 (offices)
8             Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                                (Database Server MySQL)


         “,”, CROSS JOIN & [INNER] JOIN
                (DENGAN KONDISI)
    • Biasanya suatu relasi dinyatakan dengan suatu kesamaan nilai
      yaitu kesamaan 1 atau banyak field di tabel pertama dengan 1
      atau banyak field di tabel kedua.
    • Dengan menggunakan kondisi relasi, maka baris yang dihasilkan
      bisa difilter berdasarkan kondisi relasi tersebut.
    • Hal ini disebut sebagai EQUI-JOIN (Join yang didasarkan
      persamaan nilai).
    • Untuk join yang menggunakan koma, gunakan clausa WHERE
      untuk mendefinisikan kondisi relasi
    • Untuk join yang menggunakan CROSS JOIN atau [INNER] JOIN,
      gunakan clausa ON untuk mendefinisikan kondisi relasi.

9                      Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                              (Database Server MySQL)


      “,”, CROSS JOIN & [INNER] JOIN
             (DENGAN KONDISI)
 CONTOH 1:
 SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
        o.OfficeCode, o.City, o.Country
 FROM employees e, offices o
 WHERE e.OfficeCode = o.OfficeCode;
 CONTOH 2:
 SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
        o.OfficeCode, o.City, o.Country
 FROM employees e CROSS JOIN offices o
 ON e.OfficeCode = o.OfficeCode;
 CONTOH 3:
 SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
        o.OfficeCode, o.City, o.Country
 FROM employees e INNER JOIN offices o              Hasil Eksekusi
 ON e.OfficeCode = o.OfficeCode;
10                   Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                        (Database Server MySQL)


     “,”, CROSS JOIN & [INNER] JOIN
            (DENGAN KONDISI)




                                    …




         23 Rows
                          Field yang Sama

11             Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                           (Database Server MySQL)




                  NATURAL JOIN

 • NATURAL JOIN digunakan untuk menjoinkan 2 tabel atau
   lebih yang mempunyai 1 atau banyak kolom yang
   mempunyai nama yang sama dalam semua tabelnya.
 • Jika tabel 1 mempunyai 2 kolom yang mempunyai nama
   field yang sama dengan di tabel 2, maka NATURAL JOIN
   akan melakukan kondisi relasi berdasarkan kedua field
   tersebut.
 • Dengan NATURAL JOIN, anda tidak perlu mendefinisikan
   kondisi relasi.



12                Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                             (Database Server MySQL)




                   NATURAL JOIN
 SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
        o.OfficeCode, o.City, o.Country
 FROM employees e NATURAL JOIN offices o;




                                  …



                                                                              23 Rows

13                  Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                             (Database Server MySQL)




                  CLAUSA USING()

 • Clausa USING() digunakan untuk menyingkat kondisi relasi
   yang nama kolomnya identik.
 SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
        o.OfficeCode, o.City, o.Country
 FROM employees e JOIN offices o
 ON e.OfficeCode = o.OfficeCode;

 MENJADI :
 SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
        o.OfficeCode, o.City, o.Country
 FROM employees e JOIN offices o
 USING(OfficeCode);



14                  Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                            (Database Server MySQL)




                 CLAUSA USING()

 Dengan menggunakan USING() pada JOIN, maka NATURAL
 JOIN sebenarnya sama dengan JOIN yang menggunakan
 USING untuk semua kolom yang identik pada kedua tabelnya.




15                 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                           (Database Server MySQL)




     JOIN DENGAN BANYAK KONDISI

 • Join dengan banyak kondisi bisa dilakukan dengan
   menggunakan operator boolean seperti AND. Operator OR
   bisa saja digunakan, tetapi umumnya menggunakan
   operator AND.




16                Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                           (Database Server MySQL)




     JOIN DENGAN BANYAK KONDISI
                       Kondisi 1
                     (T1.a = T2.a)




       Tabel T1                                                     Tabel T2




                              Kondisi 2
                            (T1.b = T2.b)


17                Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                             (Database Server MySQL)




     JOIN DENGAN BANYAK KONDISI
                                                                     Semua Kolom Ditampilkan
 CONTOH 1:
 SELECT *
 FROM t1, t2
 WHERE t1.a = t2.a and t1.b = t2.b;

 CONTOH 2:
 SELECT *
 FROM t1 JOIN t2
                                                                   Kolom duplikat tidak ditampilkan
 ON t1.a = t2.a and t1.b = t2.b;

 CONTOH 3:
 SELECT *
 FROM t1 NATURAL JOIN t2;
 CONTOH 3:
 SELECT *
 FROM t1 JOIN t2 USING (a,b)
18                  Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                            (Database Server MySQL)




          JOIN LEBIH DARI 2 TABEL

 Contoh Kasus :
 Berdasarkan skema relasi yang ada di halaman 3, tampilkan
   data nomor pesanan(, nama pelanggan dan nama pegawai
   yang menangani pemesanan tersebut



                                  …



      326 Rows
19                 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                               (Database Server MySQL)




           JOIN LEBIH DARI 2 TABEL

 Solusi :
 • Query yang dibutuhkan membutuhkan 3 field yaitu
   OrderNumber dari tabel Orders, CustomerName dari tabel
   Customers dan FirstName dari tabel Employees.
 • Berdasarkan skemar relasi, ketiga tabel tersebut
   dihubungkan dengan 2 relasi yaitu :
     – Orders.CustomerNumber  Customers.CustomerNumber
     – Customer.salesRepEmployeeNumber Employees.EmployeesNumber




20                    Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                               (Database Server MySQL)




           JOIN LEBIH DARI 2 TABEL
 SOLUSI 1 (MENGGUNAKAN KOMA DAN WHERE):
 SELECT o.orderNumber,c.customerName,e.firstname
 FROM orders o, customers c, employees e
 WHERE o.customerNumber = c.customerNumber AND
       c.salesRepEmployeeNumber = e.employeeNumber;

 SOLUSI 2 (MENGGUNAKAN JOIN ON):
 SELECT o.ordernumber,c.customername,e.firstname
 FROM orders o JOIN customers c ON o.customerNumber = c.customerNumber
 JOIN employees e ON c.salesRepEmployeeNumber = e.employeeNumber;

 SOLUSI 3 (MENGGUNAKAN NATURAL JOIN DAN JOIN):
 SELECT o.ordernumber,c.customername,e.firstname
 FROM orders o NATURAL JOIN customers c
 JOIN employees e ON c.salesRepEmployeeNumber = e.employeeNumber




21                    Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                                (Database Server MySQL)




                             SELF JOIN

 • Self join adalah suatu kondisi dimana suatu tabel berelasi
   dengan tabel itu sendiri.
 • Dalam self join, penggunaan alias tabel PASTI digunakan.
 • Contoh kasus :
     – Tampilan data pegawai lengkap dengan data atasannya. Atasannya
       berasal dari tabel yang sama.
     – Perhatikan pada skema relasi ClassicModel, pada table Employees
       ada field reportsTo yang berelasi dengan field CustomerNumber
       pada tabel yang sama.
     – Bisa kita anggap bahwa kolom reportsTo merupakan kolom yang
       menyatakan siapa yang menjadi atasan seorang pegawai.

22                     Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                               (Database Server MySQL)




                            SELF JOIN
 SOLUSI 1 (MENGGUNAKAN KOMA DAN WHERE):
 SELECT peg.EmployeeNumber NoPegawai,
        concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
        peg.reportsTo,
        ats.EmployeeNumber NoAtasan,
        concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
 FROM employees peg, employees ats
 WHERE peg.reportsTo = ats.employeeNumber

 SOLUSI 2 (JOIN ON):
 SELECT peg.EmployeeNumber NoPegawai,
        concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
        peg.reportsTo,
        ats.EmployeeNumber NoAtasan,
        concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
 FROM employees peg JOIN employees ats
 ON peg.reportsTo = ats.employeeNumber


23                    Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                                      (Database Server MySQL)




                                   SELF JOIN




                                                  …



         22 Rows

     Pegawai 1002 Diane Murphi tidak ditampilkan karena nilai field reportsTo bernilai NULL,
     berarti dia adalah pegawai tertinggi (tidak mempunyai atasan).

24                           Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                                   (Database Server MySQL)




                             OUTER JOIN

 • OUTER JOIN adalah suatu join yang akan menampilkan baris
   hasil JOIN (equi-join) dilengkapi dengan baris yang tidak
   mempunyai relasi di kedua tabel.
 • Ada tiga jenis OUTER JOIN, yaitu
     – LEFT [OUTER] JOIN : menampilkan semua hasil equi join, lengkap
       dengan baris dari tabel kiri (tabel 1) yang tidak mempunyai
       relasi/pasangan dari tabel kanan (tabel 2). Jika relasi tidak terpenuhi,
       maka kolom yang berasal dari tabel kanan akan diberi nilai NULL
     – RIGHT [OUTER] JOIN : menampilkan semua hasil equi join, lengkap
       dengan baris dari tabel kanan (tabel 2) yang tidak mempunyai
       relasi/pasangan dari tabel kiri(tabel 1). Jika relasi tidak terpenuhi, maka
       kolom yang berasal dari tabel kiri akan diberi nilai NULL
     – FULL [OUTER] JOIN : Baris Hasil JOIN + LEFT OUTER JOIN + RIGHT
       OUTER JOIN. MySQL tidak mendukung FULL OUTER JOIN, tetapi bisa
       diemulasikan.


25                        Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                               (Database Server MySQL)




                  LEFT [OUTER] JOIN

 Perhatikan SQL Berikut :
 SELECT peg.EmployeeNumber NoPegawai,
        concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
        peg.reportsTo,
        ats.EmployeeNumber NoAtasan,
        concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
 FROM employees peg LEFT JOIN employees ats
 ON peg.reportsTo = ats.employeeNumber

 SQL tersebut akan menampilkan semua data pegawai lengkap
   dengan nama atasan. Perbedaan dengan SELF JOIN adalah
   SEMUA baris di tabel kiri (Employees peg) akan ditampilkan
   walaupun tidak punya relasi ke tabel kanan (Employees ats)


26                    Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
              (Database Server MySQL)

                                                        Pegawai yang tidak
                                                        mempunyai relasi ke
                                                           tabel Atasan

                                                        Baris tabel Kiri yang
                                                        tidak punya relasi di
                                                            tabel Kanan




                                                          Pegawai yang
                                                        mempunyai relasi ke
                                                           tabel Atasan

                                                        Baris tabel kiri yang
                                                        mempunyai relasi di
                                                            tabel Kanan




27   Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                              (Database Server MySQL)




                LEFT [OUTER] JOIN

 Jika anda ingin mengambil baris data dari tabel kiri yang tidak
 punya relasi di tabel kanan (data pegawai yang tidak
 mempunyai atasan), maka yang perlu ditambahkan adalah
 filter terhadap field yang bersumber dari tabel kanan
 (Employees ats) yang berisi NULL.




28                   Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                                   (Database Server MySQL)




                     LEFT [OUTER] JOIN
     SELECT peg.EmployeeNumber NoPegawai,
            concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
            peg.reportsTo,
            ats.EmployeeNumber NoAtasan,
            concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
     FROM employees peg LEFT JOIN employees ats
     ON peg.reportsTo = ats.employeeNumber
     WHERE ats.employeeNumber IS NULL




29                        Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                               (Database Server MySQL)




                RIGHT [OUTER] JOIN

 Perhatikan SQL Berikut :
 SELECT peg.EmployeeNumber NoPegawai,
        concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
        peg.reportsTo,
        ats.EmployeeNumber NoAtasan,
        concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
 FROM employees peg RIGHT JOIN employees ats
 ON peg.reportsTo = ats.employeeNumber

 SQL tersebut akan menampilkan semua data pegawai lengkap
   dengan nama atasan. Perbedaan dengan SELF JOIN adalah
   SEMUA baris di tabel kanan (Employees ats) akan ditampilkan
   walaupun tidak punya relasi ke tabel kiri (Employees peg)


30                    Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
              (Database Server MySQL)




     …
                                                                  Pegawai (Atasan)
                                                                      yang tidak
                                                                 mempunyai relasi ke
                                                                    tabel Pegawai
                                                                      (Bawahan)

                                                                 Baris Tabel Kanan
                                                                    yang tidak
                                                                 mempunyai relasi di
                                                                     Tabel Kiri




31   Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                            (Database Server MySQL)




              RIGHT [OUTER] JOIN

 Jika anda ingin baris dari tabel kanan yang tidak mempunyai
 relasi ke tabel kiri (data pegawai yang tidak mempunyai
 bawahan), maka yang perlu ditambahkan adalah filter terhadap
 field yang bersumber dari tabel kiri (Employees peg) yang
 berisi NULL.




32                 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                               (Database Server MySQL)




                RIGHT [OUTER] JOIN
 SELECT peg.EmployeeNumber NoPegawai,
        concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
        peg.reportsTo,
        ats.EmployeeNumber NoAtasan,
        concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
 FROM employees peg RIGHT JOIN employees ats
 ON peg.reportsTo = ats.employeeNumber
 WHERE peg.employeeNumber IS NULL




33                    Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                (Database Server MySQL)




     RIGHT [OUTER] JOIN




34     Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                              (Database Server MySQL)




                  FULL OUTER JOIN

 • FULL OUTER JOIN tidak disupport oleh MySQL.
 • Hasil suatu join FULL OUTER JOIN akan menghasilkan
   baris tabel kiri yang mempunyai relasi di tabel kanan + baris
   tabel kiri yang tidak mempunyai relasi di tabel kanan + baris
   tabel kanan yang tidak mempunyai relasi di tabel kiri
 • FULL OUTER JOIN merupakan :
     – Gabungan antara LEFT OUTER JOIN dengan hasil RIGHT OUTER
       JOIN yang tabel kirinya bernilai NULL
     Atau
     – Gabungan antara RIGHT OUTER JOIN dengan hasil LEFT OUTER
       JOIN yang tabel kanannya bernilai NULL


35                   Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                               (Database Server MySQL)




                   FULL OUTER JOIN
 SELECT peg.EmployeeNumber NoPegawai,
        concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
        peg.reportsTo,
        ats.EmployeeNumber NoAtasan,
        concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
 FROM employees peg LEFT JOIN employees ats
 ON peg.reportsTo = ats.employeeNumber

 UNION

 SELECT peg.EmployeeNumber NoPegawai,
        concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
        peg.reportsTo,
        ats.EmployeeNumber NoAtasan,
        concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
 FROM employees peg RIGHT JOIN employees ats
 ON peg.reportsTo = ats.employeeNumber
 WHERE peg.employeeNumber IS NULL
36                    Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                               (Database Server MySQL)




                   FULL OUTER JOIN
 SELECT peg.EmployeeNumber NoPegawai,
        concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
        peg.reportsTo,
        ats.EmployeeNumber NoAtasan,
        concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
 FROM employees peg RIGHT JOIN employees ats
 ON peg.reportsTo = ats.employeeNumber

 UNION

 SELECT peg.EmployeeNumber NoPegawai,
        concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
        peg.reportsTo,
        ats.EmployeeNumber NoAtasan,
        concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
 FROM employees peg LEFT JOIN employees ats
 ON peg.reportsTo = ats.employeeNumber
 WHERE ats.employeeNumber IS NULL
37                    Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
               (Database Server MySQL)




     FULL OUTER JOIN




38    Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                            (Database Server MySQL)




                 LATIHAN-LATIHAN

 • Cari data pemesanan yang dilakukan oleh customer yang
   berasal dari negara Austria




        7 Rows

39                 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                            (Database Server MySQL)




                  LATIHAN-LATIHAN

 • Tampilkan data item pemesanan (OrderDetails) lengkap
   dengan nama produk (ProductName) dan deskripsi jenis
   produknya (textDescription)




     2,996 Rows

40                 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                            (Database Server MySQL)




                LATIHAN-LATIHAN

 • Tampilkan data produk yang pernah dipesan. Tampilkan
   kode produk, nama produk dan deskripsinya.




     109 Rows

41                 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                           (Database Server MySQL)




               LATIHAN-LATIHAN

 • Cara data customer yang belum pernah melakukan
   pembayaran.




                             24 Rows

42                Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
                            (Database Server MySQL)




                  LATIHAN-LATIHAN

 • Tampilkan data pemesanan barang lengkap dengan
   keuntungan yang didapat




     2,996 Rows




43                 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia

More Related Content

What's hot

Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis DataMr. Nugraha
 
Modul sistem-informasi-1-2
Modul sistem-informasi-1-2Modul sistem-informasi-1-2
Modul sistem-informasi-1-2Nova Novelia
 
Sistem Basis Data(PPT)
Sistem Basis Data(PPT)Sistem Basis Data(PPT)
Sistem Basis Data(PPT)tafrikan
 
Pertemuan 4 - Struktur Kondisi IF
Pertemuan 4 - Struktur Kondisi IFPertemuan 4 - Struktur Kondisi IF
Pertemuan 4 - Struktur Kondisi IFAchmad Solichin
 
Regular Expression - TBO - Materi 4
 Regular Expression - TBO - Materi 4 Regular Expression - TBO - Materi 4
Regular Expression - TBO - Materi 4ahmad haidaroh
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antaraGunawan Manalu
 
Basis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDLBasis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDLWalid Umar
 
Materi manajemen investasi teknologi informasi-1
Materi  manajemen investasi teknologi informasi-1Materi  manajemen investasi teknologi informasi-1
Materi manajemen investasi teknologi informasi-1Fajar Baskoro
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)eka pandu cynthia
 
Makalah Aplikasi Database Maskapai Penerbangan
Makalah Aplikasi Database Maskapai PenerbanganMakalah Aplikasi Database Maskapai Penerbangan
Makalah Aplikasi Database Maskapai PenerbanganInsan Cahya Setia
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLDejiko Chaem
 
Analisis Data Kelas 8
Analisis Data Kelas 8Analisis Data Kelas 8
Analisis Data Kelas 8Farichah Riha
 

What's hot (20)

Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis Data
 
Bab 2 model data
Bab 2 model dataBab 2 model data
Bab 2 model data
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
Erd dan contoh kasus
Erd dan contoh kasusErd dan contoh kasus
Erd dan contoh kasus
 
Modul sistem-informasi-1-2
Modul sistem-informasi-1-2Modul sistem-informasi-1-2
Modul sistem-informasi-1-2
 
Data mining 7
Data mining 7Data mining 7
Data mining 7
 
Sistem Basis Data(PPT)
Sistem Basis Data(PPT)Sistem Basis Data(PPT)
Sistem Basis Data(PPT)
 
Pertemuan 4 - Struktur Kondisi IF
Pertemuan 4 - Struktur Kondisi IFPertemuan 4 - Struktur Kondisi IF
Pertemuan 4 - Struktur Kondisi IF
 
Regular Expression - TBO - Materi 4
 Regular Expression - TBO - Materi 4 Regular Expression - TBO - Materi 4
Regular Expression - TBO - Materi 4
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antara
 
Himpunan
HimpunanHimpunan
Himpunan
 
Class Diagram
Class DiagramClass Diagram
Class Diagram
 
Basis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDLBasis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDL
 
Materi manajemen investasi teknologi informasi-1
Materi  manajemen investasi teknologi informasi-1Materi  manajemen investasi teknologi informasi-1
Materi manajemen investasi teknologi informasi-1
 
Data mining 1 pengantar
Data mining 1   pengantarData mining 1   pengantar
Data mining 1 pengantar
 
Normalisasi Basis Data
Normalisasi Basis DataNormalisasi Basis Data
Normalisasi Basis Data
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)
 
Makalah Aplikasi Database Maskapai Penerbangan
Makalah Aplikasi Database Maskapai PenerbanganMakalah Aplikasi Database Maskapai Penerbangan
Makalah Aplikasi Database Maskapai Penerbangan
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
 
Analisis Data Kelas 8
Analisis Data Kelas 8Analisis Data Kelas 8
Analisis Data Kelas 8
 

Viewers also liked

Viewers also liked (7)

Aplikasi database berbasis web studi kasus part 3
Aplikasi database berbasis web   studi kasus part 3Aplikasi database berbasis web   studi kasus part 3
Aplikasi database berbasis web studi kasus part 3
 
Pernyataan Select: Function Date/Time
Pernyataan Select: Function Date/TimePernyataan Select: Function Date/Time
Pernyataan Select: Function Date/Time
 
11 aplikasi teknologi online - session dan aplikasinya
11   aplikasi teknologi online - session dan aplikasinya11   aplikasi teknologi online - session dan aplikasinya
11 aplikasi teknologi online - session dan aplikasinya
 
WLAN workshop
WLAN workshopWLAN workshop
WLAN workshop
 
Sistem dan model
Sistem dan modelSistem dan model
Sistem dan model
 
Fungsi Perencanaan dan Pengambilan Keputusan
Fungsi Perencanaan dan Pengambilan KeputusanFungsi Perencanaan dan Pengambilan Keputusan
Fungsi Perencanaan dan Pengambilan Keputusan
 
Sekilas tentang HaKI
Sekilas tentang HaKISekilas tentang HaKI
Sekilas tentang HaKI
 

Similar to Join-Database

Pernyataan Select (Function) Alur Control dan Perbandingan
Pernyataan Select (Function) Alur Control dan PerbandinganPernyataan Select (Function) Alur Control dan Perbandingan
Pernyataan Select (Function) Alur Control dan PerbandinganMateri Kuliah Online
 
Bab 05-pernyataan select (function)
Bab 05-pernyataan select (function)Bab 05-pernyataan select (function)
Bab 05-pernyataan select (function)Materi Kuliah Online
 
Modul struktur data_affif
Modul struktur data_affifModul struktur data_affif
Modul struktur data_affifSejahtera Affif
 
Dasar_Dasar_Perintah_SQL.ppt
Dasar_Dasar_Perintah_SQL.pptDasar_Dasar_Perintah_SQL.ppt
Dasar_Dasar_Perintah_SQL.pptmusahari1
 
Modul07 a microsoft acces
Modul07 a microsoft accesModul07 a microsoft acces
Modul07 a microsoft accesTri Pakde
 
Fendi dasar-mysql-menggunakan
Fendi dasar-mysql-menggunakanFendi dasar-mysql-menggunakan
Fendi dasar-mysql-menggunakanA Dian
 
INSERT DATA WITH ADO.NET TECHNOLOGY
INSERT DATA WITH ADO.NET TECHNOLOGYINSERT DATA WITH ADO.NET TECHNOLOGY
INSERT DATA WITH ADO.NET TECHNOLOGYVeronica Anggraini
 
Bab 06 - Perancangan Database dengan PowerDesigner.pdf
Bab 06 - Perancangan Database dengan PowerDesigner.pdfBab 06 - Perancangan Database dengan PowerDesigner.pdf
Bab 06 - Perancangan Database dengan PowerDesigner.pdfdedy59
 

Similar to Join-Database (17)

Bab 05-pernyataan select (basic)
Bab 05-pernyataan select (basic)Bab 05-pernyataan select (basic)
Bab 05-pernyataan select (basic)
 
Bab 07-data manipulation language
Bab 07-data manipulation languageBab 07-data manipulation language
Bab 07-data manipulation language
 
Pernyataan Select (Function) Alur Control dan Perbandingan
Pernyataan Select (Function) Alur Control dan PerbandinganPernyataan Select (Function) Alur Control dan Perbandingan
Pernyataan Select (Function) Alur Control dan Perbandingan
 
Laporan modul 5 basisdata
Laporan modul 5 basisdataLaporan modul 5 basisdata
Laporan modul 5 basisdata
 
Bab 05-pernyataan select (function)
Bab 05-pernyataan select (function)Bab 05-pernyataan select (function)
Bab 05-pernyataan select (function)
 
Sd p1
Sd p1Sd p1
Sd p1
 
Bab 04-mengatur database my sql
Bab 04-mengatur database my sqlBab 04-mengatur database my sql
Bab 04-mengatur database my sql
 
fti305_op_sns
fti305_op_snsfti305_op_sns
fti305_op_sns
 
Vb
VbVb
Vb
 
Modul struktur data_affif
Modul struktur data_affifModul struktur data_affif
Modul struktur data_affif
 
Dasar_Dasar_Perintah_SQL.ppt
Dasar_Dasar_Perintah_SQL.pptDasar_Dasar_Perintah_SQL.ppt
Dasar_Dasar_Perintah_SQL.ppt
 
Modul07 a microsoft acces
Modul07 a microsoft accesModul07 a microsoft acces
Modul07 a microsoft acces
 
Modul07 a
Modul07 aModul07 a
Modul07 a
 
Fendi dasar-mysql-menggunakan
Fendi dasar-mysql-menggunakanFendi dasar-mysql-menggunakan
Fendi dasar-mysql-menggunakan
 
INSERT DATA WITH ADO.NET TECHNOLOGY
INSERT DATA WITH ADO.NET TECHNOLOGYINSERT DATA WITH ADO.NET TECHNOLOGY
INSERT DATA WITH ADO.NET TECHNOLOGY
 
Bab 06 - Perancangan Database dengan PowerDesigner.pdf
Bab 06 - Perancangan Database dengan PowerDesigner.pdfBab 06 - Perancangan Database dengan PowerDesigner.pdf
Bab 06 - Perancangan Database dengan PowerDesigner.pdf
 
Pert-5_DD-CD-DFD.ppt
Pert-5_DD-CD-DFD.pptPert-5_DD-CD-DFD.ppt
Pert-5_DD-CD-DFD.ppt
 

More from Materi Kuliah Online

Pengenalan Rekayasa Perangkat Lunak
Pengenalan Rekayasa Perangkat LunakPengenalan Rekayasa Perangkat Lunak
Pengenalan Rekayasa Perangkat LunakMateri Kuliah Online
 
Melangkah dengan Microsoft Windows Server 2003
Melangkah dengan Microsoft Windows Server 2003Melangkah dengan Microsoft Windows Server 2003
Melangkah dengan Microsoft Windows Server 2003Materi Kuliah Online
 
Studi Mengenai Aspek Privasi pada Sistem RFID
Studi Mengenai Aspek Privasi pada Sistem RFIDStudi Mengenai Aspek Privasi pada Sistem RFID
Studi Mengenai Aspek Privasi pada Sistem RFIDMateri Kuliah Online
 
Internet dan Layanan Aplikasi Terdistribusi
Internet dan Layanan Aplikasi TerdistribusiInternet dan Layanan Aplikasi Terdistribusi
Internet dan Layanan Aplikasi TerdistribusiMateri Kuliah Online
 
Aspek Security pada Penerapan m-Commerce di Indonesia
Aspek Security pada Penerapan m-Commerce di IndonesiaAspek Security pada Penerapan m-Commerce di Indonesia
Aspek Security pada Penerapan m-Commerce di IndonesiaMateri Kuliah Online
 
A Comparison of Proximity Authentication Approaches
A Comparison of Proximity Authentication ApproachesA Comparison of Proximity Authentication Approaches
A Comparison of Proximity Authentication ApproachesMateri Kuliah Online
 
Kajian Perkembangan Teknologi Smart Card dari Segi Keamanan
Kajian Perkembangan Teknologi Smart Card dari Segi KeamananKajian Perkembangan Teknologi Smart Card dari Segi Keamanan
Kajian Perkembangan Teknologi Smart Card dari Segi KeamananMateri Kuliah Online
 
Catu Daya dan Rangkaian Penyearah Gelombang
Catu Daya dan Rangkaian Penyearah GelombangCatu Daya dan Rangkaian Penyearah Gelombang
Catu Daya dan Rangkaian Penyearah GelombangMateri Kuliah Online
 
Simulasi Anti Integral Windup dengan Clamp Integrator
Simulasi Anti Integral Windup dengan Clamp IntegratorSimulasi Anti Integral Windup dengan Clamp Integrator
Simulasi Anti Integral Windup dengan Clamp IntegratorMateri Kuliah Online
 
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware TechnologyPrinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware TechnologyMateri Kuliah Online
 
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan TeleponPenggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan TeleponMateri Kuliah Online
 
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara WirelessPenggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara WirelessMateri Kuliah Online
 
Proses dan Penjadualan : Prioritas dan Multiprosesor
Proses dan Penjadualan : Prioritas dan MultiprosesorProses dan Penjadualan : Prioritas dan Multiprosesor
Proses dan Penjadualan : Prioritas dan MultiprosesorMateri Kuliah Online
 

More from Materi Kuliah Online (20)

Pengenalan Rekayasa Perangkat Lunak
Pengenalan Rekayasa Perangkat LunakPengenalan Rekayasa Perangkat Lunak
Pengenalan Rekayasa Perangkat Lunak
 
Pemodelan Basis Data Lainnya
Pemodelan Basis Data LainnyaPemodelan Basis Data Lainnya
Pemodelan Basis Data Lainnya
 
Arsitektur Sistem Basis Data
Arsitektur Sistem Basis DataArsitektur Sistem Basis Data
Arsitektur Sistem Basis Data
 
Access control-systems
Access control-systemsAccess control-systems
Access control-systems
 
Melangkah dengan Microsoft Windows Server 2003
Melangkah dengan Microsoft Windows Server 2003Melangkah dengan Microsoft Windows Server 2003
Melangkah dengan Microsoft Windows Server 2003
 
Studi Mengenai Aspek Privasi pada Sistem RFID
Studi Mengenai Aspek Privasi pada Sistem RFIDStudi Mengenai Aspek Privasi pada Sistem RFID
Studi Mengenai Aspek Privasi pada Sistem RFID
 
Remote control alarm sepeda motor
Remote control alarm sepeda motorRemote control alarm sepeda motor
Remote control alarm sepeda motor
 
Internet dan Layanan Aplikasi Terdistribusi
Internet dan Layanan Aplikasi TerdistribusiInternet dan Layanan Aplikasi Terdistribusi
Internet dan Layanan Aplikasi Terdistribusi
 
Aspek Security pada Penerapan m-Commerce di Indonesia
Aspek Security pada Penerapan m-Commerce di IndonesiaAspek Security pada Penerapan m-Commerce di Indonesia
Aspek Security pada Penerapan m-Commerce di Indonesia
 
A Comparison of Proximity Authentication Approaches
A Comparison of Proximity Authentication ApproachesA Comparison of Proximity Authentication Approaches
A Comparison of Proximity Authentication Approaches
 
Kajian Perkembangan Teknologi Smart Card dari Segi Keamanan
Kajian Perkembangan Teknologi Smart Card dari Segi KeamananKajian Perkembangan Teknologi Smart Card dari Segi Keamanan
Kajian Perkembangan Teknologi Smart Card dari Segi Keamanan
 
Catu Daya dan Rangkaian Penyearah Gelombang
Catu Daya dan Rangkaian Penyearah GelombangCatu Daya dan Rangkaian Penyearah Gelombang
Catu Daya dan Rangkaian Penyearah Gelombang
 
Dioda dan Catu Daya
Dioda dan Catu DayaDioda dan Catu Daya
Dioda dan Catu Daya
 
Simulasi Anti Integral Windup dengan Clamp Integrator
Simulasi Anti Integral Windup dengan Clamp IntegratorSimulasi Anti Integral Windup dengan Clamp Integrator
Simulasi Anti Integral Windup dengan Clamp Integrator
 
Radio Frequency Identification
Radio Frequency IdentificationRadio Frequency Identification
Radio Frequency Identification
 
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware TechnologyPrinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
 
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan TeleponPenggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
 
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara WirelessPenggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
 
Interfacing Number Display
Interfacing Number DisplayInterfacing Number Display
Interfacing Number Display
 
Proses dan Penjadualan : Prioritas dan Multiprosesor
Proses dan Penjadualan : Prioritas dan MultiprosesorProses dan Penjadualan : Prioritas dan Multiprosesor
Proses dan Penjadualan : Prioritas dan Multiprosesor
 

Recently uploaded

AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..ikayogakinasih12
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxssuser35630b
 
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxLK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxPurmiasih
 
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxPPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxdpp11tya
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxadimulianta1
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...Kanaidi ken
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDNurainiNuraini25
 
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfDiskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfHendroGunawan8
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...asepsaefudin2009
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfirwanabidin08
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxsukmakarim1998
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMIGustiBagusGending
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfNurulHikmah50658
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfDimanWr1
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxdeskaputriani1
 
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptxMateri IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptxmuhammadkausar1201
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxssuser50800a
 
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptxPPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptxSaefAhmad
 
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...MetalinaSimanjuntak1
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTIndraAdm
 

Recently uploaded (20)

AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxLK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
 
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxPPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptx
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
 
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfDiskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptxMateri IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
Materi IPAS Kelas 1 SD Bab 3. Hidup Sehat.pptx
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
 
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptxPPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
PPT PENELITIAN TINDAKAN KELAS MODUL 5.pptx
 
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UT
 

Join-Database

  • 1. Praktikum Basis Data (Database Server MySQL) JOIN 1 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 2. Praktikum Basis Data (Database Server MySQL) SKEMA RELASI YANG DIGUNAKAN CLASSICMODELS 2 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 3. Praktikum Basis Data (Database Server MySQL) CLASSICMODELS 3 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 4. Praktikum Basis Data (Database Server MySQL) Jenis Join • JOIN menggunakan operator “,” (koma) • CROSS JOIN • INNER JOIN • NATURAL JOIN • SELF JOIN • LEFT OUTER JOIN • RIGHT OUTER JOIN • FULL OUTER JOIN (MySQL tidak support) 4 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 5. Praktikum Basis Data (Database Server MySQL) “,”, CROSS JOIN & [INNER] JOIN (TANPA KONDISI) • Perintah “,”, CROSS JOIN dan [INNER] JOIN yang tanpa menggunakan kondisi akan menghasilkan suatu himpunan Cartesian product yang akan mengkombinasikan semua baris di tabel pertama dengan semua baris di tabel kedua. • Jika anda menggunakan join menggunakan perintah tersebut, maka jika tabel pertama terdiri dari 5 baris dan tabel kedua terdiri dari 3 baris maka akan menghasilkan baris sebanyak 15. • Di MySQL, ketiga jenis join tersebut akan menghasilkan hasil yang sama 5 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 6. Praktikum Basis Data (Database Server MySQL) “,”, CROSS JOIN & [INNER] JOIN (TANPA KONDISI) SELECT EmployeeNumber, SELECT OfficeCode, LastName, OfficeCode City, Country FROM employees FROM offices … 7 Rows 23 Rows 6 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 7. Praktikum Basis Data (Database Server MySQL) “,”, CROSS JOIN & [INNER] JOIN (TANPA KONDISI) CONTOH 1: SELECT e.EmployeeNumber, e.LastName, e.OfficeCode, o.OfficeCode, o.City, o.Country FROM employees e, offices o; Perhatikan Alias Table: Tabel Employees  e Tabel Offices  o CONTOH 2: SELECT e.EmployeeNumber, e.LastName, e.OfficeCode, o.OfficeCode, o.City, o.Country FROM employees e CROSS JOIN offices o; CONTOH 3: SELECT e.EmployeeNumber, e.LastName, e.OfficeCode, o.OfficeCode, o.City, o.Country FROM employees e INNER JOIN offices o; Hasil Eksekusi 7 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 8. Praktikum Basis Data (Database Server MySQL) “,”, CROSS JOIN & [INNER] JOIN (TANPA KONDISI) … 161 Rows  23 (employees) x 7 (offices) 8 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 9. Praktikum Basis Data (Database Server MySQL) “,”, CROSS JOIN & [INNER] JOIN (DENGAN KONDISI) • Biasanya suatu relasi dinyatakan dengan suatu kesamaan nilai yaitu kesamaan 1 atau banyak field di tabel pertama dengan 1 atau banyak field di tabel kedua. • Dengan menggunakan kondisi relasi, maka baris yang dihasilkan bisa difilter berdasarkan kondisi relasi tersebut. • Hal ini disebut sebagai EQUI-JOIN (Join yang didasarkan persamaan nilai). • Untuk join yang menggunakan koma, gunakan clausa WHERE untuk mendefinisikan kondisi relasi • Untuk join yang menggunakan CROSS JOIN atau [INNER] JOIN, gunakan clausa ON untuk mendefinisikan kondisi relasi. 9 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 10. Praktikum Basis Data (Database Server MySQL) “,”, CROSS JOIN & [INNER] JOIN (DENGAN KONDISI) CONTOH 1: SELECT e.EmployeeNumber, e.LastName, e.OfficeCode, o.OfficeCode, o.City, o.Country FROM employees e, offices o WHERE e.OfficeCode = o.OfficeCode; CONTOH 2: SELECT e.EmployeeNumber, e.LastName, e.OfficeCode, o.OfficeCode, o.City, o.Country FROM employees e CROSS JOIN offices o ON e.OfficeCode = o.OfficeCode; CONTOH 3: SELECT e.EmployeeNumber, e.LastName, e.OfficeCode, o.OfficeCode, o.City, o.Country FROM employees e INNER JOIN offices o Hasil Eksekusi ON e.OfficeCode = o.OfficeCode; 10 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 11. Praktikum Basis Data (Database Server MySQL) “,”, CROSS JOIN & [INNER] JOIN (DENGAN KONDISI) … 23 Rows Field yang Sama 11 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 12. Praktikum Basis Data (Database Server MySQL) NATURAL JOIN • NATURAL JOIN digunakan untuk menjoinkan 2 tabel atau lebih yang mempunyai 1 atau banyak kolom yang mempunyai nama yang sama dalam semua tabelnya. • Jika tabel 1 mempunyai 2 kolom yang mempunyai nama field yang sama dengan di tabel 2, maka NATURAL JOIN akan melakukan kondisi relasi berdasarkan kedua field tersebut. • Dengan NATURAL JOIN, anda tidak perlu mendefinisikan kondisi relasi. 12 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 13. Praktikum Basis Data (Database Server MySQL) NATURAL JOIN SELECT e.EmployeeNumber, e.LastName, e.OfficeCode, o.OfficeCode, o.City, o.Country FROM employees e NATURAL JOIN offices o; … 23 Rows 13 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 14. Praktikum Basis Data (Database Server MySQL) CLAUSA USING() • Clausa USING() digunakan untuk menyingkat kondisi relasi yang nama kolomnya identik. SELECT e.EmployeeNumber, e.LastName, e.OfficeCode, o.OfficeCode, o.City, o.Country FROM employees e JOIN offices o ON e.OfficeCode = o.OfficeCode; MENJADI : SELECT e.EmployeeNumber, e.LastName, e.OfficeCode, o.OfficeCode, o.City, o.Country FROM employees e JOIN offices o USING(OfficeCode); 14 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 15. Praktikum Basis Data (Database Server MySQL) CLAUSA USING() Dengan menggunakan USING() pada JOIN, maka NATURAL JOIN sebenarnya sama dengan JOIN yang menggunakan USING untuk semua kolom yang identik pada kedua tabelnya. 15 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 16. Praktikum Basis Data (Database Server MySQL) JOIN DENGAN BANYAK KONDISI • Join dengan banyak kondisi bisa dilakukan dengan menggunakan operator boolean seperti AND. Operator OR bisa saja digunakan, tetapi umumnya menggunakan operator AND. 16 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 17. Praktikum Basis Data (Database Server MySQL) JOIN DENGAN BANYAK KONDISI Kondisi 1 (T1.a = T2.a) Tabel T1 Tabel T2 Kondisi 2 (T1.b = T2.b) 17 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 18. Praktikum Basis Data (Database Server MySQL) JOIN DENGAN BANYAK KONDISI Semua Kolom Ditampilkan CONTOH 1: SELECT * FROM t1, t2 WHERE t1.a = t2.a and t1.b = t2.b; CONTOH 2: SELECT * FROM t1 JOIN t2 Kolom duplikat tidak ditampilkan ON t1.a = t2.a and t1.b = t2.b; CONTOH 3: SELECT * FROM t1 NATURAL JOIN t2; CONTOH 3: SELECT * FROM t1 JOIN t2 USING (a,b) 18 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 19. Praktikum Basis Data (Database Server MySQL) JOIN LEBIH DARI 2 TABEL Contoh Kasus : Berdasarkan skema relasi yang ada di halaman 3, tampilkan data nomor pesanan(, nama pelanggan dan nama pegawai yang menangani pemesanan tersebut … 326 Rows 19 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 20. Praktikum Basis Data (Database Server MySQL) JOIN LEBIH DARI 2 TABEL Solusi : • Query yang dibutuhkan membutuhkan 3 field yaitu OrderNumber dari tabel Orders, CustomerName dari tabel Customers dan FirstName dari tabel Employees. • Berdasarkan skemar relasi, ketiga tabel tersebut dihubungkan dengan 2 relasi yaitu : – Orders.CustomerNumber  Customers.CustomerNumber – Customer.salesRepEmployeeNumber Employees.EmployeesNumber 20 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 21. Praktikum Basis Data (Database Server MySQL) JOIN LEBIH DARI 2 TABEL SOLUSI 1 (MENGGUNAKAN KOMA DAN WHERE): SELECT o.orderNumber,c.customerName,e.firstname FROM orders o, customers c, employees e WHERE o.customerNumber = c.customerNumber AND c.salesRepEmployeeNumber = e.employeeNumber; SOLUSI 2 (MENGGUNAKAN JOIN ON): SELECT o.ordernumber,c.customername,e.firstname FROM orders o JOIN customers c ON o.customerNumber = c.customerNumber JOIN employees e ON c.salesRepEmployeeNumber = e.employeeNumber; SOLUSI 3 (MENGGUNAKAN NATURAL JOIN DAN JOIN): SELECT o.ordernumber,c.customername,e.firstname FROM orders o NATURAL JOIN customers c JOIN employees e ON c.salesRepEmployeeNumber = e.employeeNumber 21 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 22. Praktikum Basis Data (Database Server MySQL) SELF JOIN • Self join adalah suatu kondisi dimana suatu tabel berelasi dengan tabel itu sendiri. • Dalam self join, penggunaan alias tabel PASTI digunakan. • Contoh kasus : – Tampilan data pegawai lengkap dengan data atasannya. Atasannya berasal dari tabel yang sama. – Perhatikan pada skema relasi ClassicModel, pada table Employees ada field reportsTo yang berelasi dengan field CustomerNumber pada tabel yang sama. – Bisa kita anggap bahwa kolom reportsTo merupakan kolom yang menyatakan siapa yang menjadi atasan seorang pegawai. 22 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 23. Praktikum Basis Data (Database Server MySQL) SELF JOIN SOLUSI 1 (MENGGUNAKAN KOMA DAN WHERE): SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg, employees ats WHERE peg.reportsTo = ats.employeeNumber SOLUSI 2 (JOIN ON): SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg JOIN employees ats ON peg.reportsTo = ats.employeeNumber 23 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 24. Praktikum Basis Data (Database Server MySQL) SELF JOIN … 22 Rows Pegawai 1002 Diane Murphi tidak ditampilkan karena nilai field reportsTo bernilai NULL, berarti dia adalah pegawai tertinggi (tidak mempunyai atasan). 24 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 25. Praktikum Basis Data (Database Server MySQL) OUTER JOIN • OUTER JOIN adalah suatu join yang akan menampilkan baris hasil JOIN (equi-join) dilengkapi dengan baris yang tidak mempunyai relasi di kedua tabel. • Ada tiga jenis OUTER JOIN, yaitu – LEFT [OUTER] JOIN : menampilkan semua hasil equi join, lengkap dengan baris dari tabel kiri (tabel 1) yang tidak mempunyai relasi/pasangan dari tabel kanan (tabel 2). Jika relasi tidak terpenuhi, maka kolom yang berasal dari tabel kanan akan diberi nilai NULL – RIGHT [OUTER] JOIN : menampilkan semua hasil equi join, lengkap dengan baris dari tabel kanan (tabel 2) yang tidak mempunyai relasi/pasangan dari tabel kiri(tabel 1). Jika relasi tidak terpenuhi, maka kolom yang berasal dari tabel kiri akan diberi nilai NULL – FULL [OUTER] JOIN : Baris Hasil JOIN + LEFT OUTER JOIN + RIGHT OUTER JOIN. MySQL tidak mendukung FULL OUTER JOIN, tetapi bisa diemulasikan. 25 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 26. Praktikum Basis Data (Database Server MySQL) LEFT [OUTER] JOIN Perhatikan SQL Berikut : SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg LEFT JOIN employees ats ON peg.reportsTo = ats.employeeNumber SQL tersebut akan menampilkan semua data pegawai lengkap dengan nama atasan. Perbedaan dengan SELF JOIN adalah SEMUA baris di tabel kiri (Employees peg) akan ditampilkan walaupun tidak punya relasi ke tabel kanan (Employees ats) 26 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 27. Praktikum Basis Data (Database Server MySQL) Pegawai yang tidak mempunyai relasi ke tabel Atasan Baris tabel Kiri yang tidak punya relasi di tabel Kanan Pegawai yang mempunyai relasi ke tabel Atasan Baris tabel kiri yang mempunyai relasi di tabel Kanan 27 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 28. Praktikum Basis Data (Database Server MySQL) LEFT [OUTER] JOIN Jika anda ingin mengambil baris data dari tabel kiri yang tidak punya relasi di tabel kanan (data pegawai yang tidak mempunyai atasan), maka yang perlu ditambahkan adalah filter terhadap field yang bersumber dari tabel kanan (Employees ats) yang berisi NULL. 28 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 29. Praktikum Basis Data (Database Server MySQL) LEFT [OUTER] JOIN SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg LEFT JOIN employees ats ON peg.reportsTo = ats.employeeNumber WHERE ats.employeeNumber IS NULL 29 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 30. Praktikum Basis Data (Database Server MySQL) RIGHT [OUTER] JOIN Perhatikan SQL Berikut : SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg RIGHT JOIN employees ats ON peg.reportsTo = ats.employeeNumber SQL tersebut akan menampilkan semua data pegawai lengkap dengan nama atasan. Perbedaan dengan SELF JOIN adalah SEMUA baris di tabel kanan (Employees ats) akan ditampilkan walaupun tidak punya relasi ke tabel kiri (Employees peg) 30 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 31. Praktikum Basis Data (Database Server MySQL) … Pegawai (Atasan) yang tidak mempunyai relasi ke tabel Pegawai (Bawahan) Baris Tabel Kanan yang tidak mempunyai relasi di Tabel Kiri 31 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 32. Praktikum Basis Data (Database Server MySQL) RIGHT [OUTER] JOIN Jika anda ingin baris dari tabel kanan yang tidak mempunyai relasi ke tabel kiri (data pegawai yang tidak mempunyai bawahan), maka yang perlu ditambahkan adalah filter terhadap field yang bersumber dari tabel kiri (Employees peg) yang berisi NULL. 32 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 33. Praktikum Basis Data (Database Server MySQL) RIGHT [OUTER] JOIN SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg RIGHT JOIN employees ats ON peg.reportsTo = ats.employeeNumber WHERE peg.employeeNumber IS NULL 33 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 34. Praktikum Basis Data (Database Server MySQL) RIGHT [OUTER] JOIN 34 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 35. Praktikum Basis Data (Database Server MySQL) FULL OUTER JOIN • FULL OUTER JOIN tidak disupport oleh MySQL. • Hasil suatu join FULL OUTER JOIN akan menghasilkan baris tabel kiri yang mempunyai relasi di tabel kanan + baris tabel kiri yang tidak mempunyai relasi di tabel kanan + baris tabel kanan yang tidak mempunyai relasi di tabel kiri • FULL OUTER JOIN merupakan : – Gabungan antara LEFT OUTER JOIN dengan hasil RIGHT OUTER JOIN yang tabel kirinya bernilai NULL Atau – Gabungan antara RIGHT OUTER JOIN dengan hasil LEFT OUTER JOIN yang tabel kanannya bernilai NULL 35 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 36. Praktikum Basis Data (Database Server MySQL) FULL OUTER JOIN SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg LEFT JOIN employees ats ON peg.reportsTo = ats.employeeNumber UNION SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg RIGHT JOIN employees ats ON peg.reportsTo = ats.employeeNumber WHERE peg.employeeNumber IS NULL 36 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 37. Praktikum Basis Data (Database Server MySQL) FULL OUTER JOIN SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg RIGHT JOIN employees ats ON peg.reportsTo = ats.employeeNumber UNION SELECT peg.EmployeeNumber NoPegawai, concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai, peg.reportsTo, ats.EmployeeNumber NoAtasan, concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan FROM employees peg LEFT JOIN employees ats ON peg.reportsTo = ats.employeeNumber WHERE ats.employeeNumber IS NULL 37 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 38. Praktikum Basis Data (Database Server MySQL) FULL OUTER JOIN 38 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 39. Praktikum Basis Data (Database Server MySQL) LATIHAN-LATIHAN • Cari data pemesanan yang dilakukan oleh customer yang berasal dari negara Austria 7 Rows 39 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 40. Praktikum Basis Data (Database Server MySQL) LATIHAN-LATIHAN • Tampilkan data item pemesanan (OrderDetails) lengkap dengan nama produk (ProductName) dan deskripsi jenis produknya (textDescription) 2,996 Rows 40 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 41. Praktikum Basis Data (Database Server MySQL) LATIHAN-LATIHAN • Tampilkan data produk yang pernah dipesan. Tampilkan kode produk, nama produk dan deskripsinya. 109 Rows 41 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 42. Praktikum Basis Data (Database Server MySQL) LATIHAN-LATIHAN • Cara data customer yang belum pernah melakukan pembayaran. 24 Rows 42 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
  • 43. Praktikum Basis Data (Database Server MySQL) LATIHAN-LATIHAN • Tampilkan data pemesanan barang lengkap dengan keuntungan yang didapat 2,996 Rows 43 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia