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

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
 
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMIN
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMINLaporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMIN
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMINShofura Kamal
 
Basis Data : Pemodelan Erd
Basis Data : Pemodelan ErdBasis Data : Pemodelan Erd
Basis Data : Pemodelan Erdamalianuryamin
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis DataMr. Nugraha
 
Proposal penawaran pembuatan website baru
Proposal penawaran pembuatan website baruProposal penawaran pembuatan website baru
Proposal penawaran pembuatan website baruTysar Budirianto
 
8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)Kelinci Coklat
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Miningdedidarwis
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automataahmad haidaroh
 
LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...
LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...
LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...Uofa_Unsada
 
Rpl 012 - perancangan berorientasi objek
Rpl   012 - perancangan berorientasi objekRpl   012 - perancangan berorientasi objek
Rpl 012 - perancangan berorientasi objekFebriyani Syafri
 
Materi 2 Kompleksitas Waktu dan Ruang (2).pdf
Materi 2 Kompleksitas Waktu dan Ruang (2).pdfMateri 2 Kompleksitas Waktu dan Ruang (2).pdf
Materi 2 Kompleksitas Waktu dan Ruang (2).pdfAnandaPrasta
 
Mengenal fungsi php untuk pengambilan data my sql: mysql fetch
Mengenal fungsi php untuk pengambilan data my sql: mysql fetchMengenal fungsi php untuk pengambilan data my sql: mysql fetch
Mengenal fungsi php untuk pengambilan data my sql: mysql fetchAchmad Solichin
 
Kuis Etika Profesi Teknologi Informasi dan Komunikasi
Kuis Etika Profesi Teknologi Informasi dan KomunikasiKuis Etika Profesi Teknologi Informasi dan Komunikasi
Kuis Etika Profesi Teknologi Informasi dan KomunikasiDwi Mardianti
 
Proposal pembuatan aplikasi
Proposal pembuatan aplikasiProposal pembuatan aplikasi
Proposal pembuatan aplikasiHIMATIF UIN SGD
 
Laporan praktikum basis data my sql
Laporan praktikum basis data my sqlLaporan praktikum basis data my sql
Laporan praktikum basis data my sqlLela Warni
 
UML Aplikasi Rental Mobil
UML Aplikasi Rental MobilUML Aplikasi Rental Mobil
UML Aplikasi Rental MobilDwi Mardianti
 

What's hot (20)

Makalah array
Makalah arrayMakalah array
Makalah array
 
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
 
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMIN
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMINLaporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMIN
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMIN
 
Basis Data : Pemodelan Erd
Basis Data : Pemodelan ErdBasis Data : Pemodelan Erd
Basis Data : Pemodelan Erd
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis Data
 
Pertemuan 4 Strategi Testing
Pertemuan 4  Strategi TestingPertemuan 4  Strategi Testing
Pertemuan 4 Strategi Testing
 
Proposal penawaran pembuatan website baru
Proposal penawaran pembuatan website baruProposal penawaran pembuatan website baru
Proposal penawaran pembuatan website baru
 
8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Mining
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Software Requirements
Software RequirementsSoftware Requirements
Software Requirements
 
LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...
LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...
LAPORAN TUGAS AKHIR PERANCANGAN APLIKASI KNOWLEDGE BASE SYSTEM UNTUK INSTRUKS...
 
Rpl 012 - perancangan berorientasi objek
Rpl   012 - perancangan berorientasi objekRpl   012 - perancangan berorientasi objek
Rpl 012 - perancangan berorientasi objek
 
Materi 2 Kompleksitas Waktu dan Ruang (2).pdf
Materi 2 Kompleksitas Waktu dan Ruang (2).pdfMateri 2 Kompleksitas Waktu dan Ruang (2).pdf
Materi 2 Kompleksitas Waktu dan Ruang (2).pdf
 
Mengenal fungsi php untuk pengambilan data my sql: mysql fetch
Mengenal fungsi php untuk pengambilan data my sql: mysql fetchMengenal fungsi php untuk pengambilan data my sql: mysql fetch
Mengenal fungsi php untuk pengambilan data my sql: mysql fetch
 
Kuis Etika Profesi Teknologi Informasi dan Komunikasi
Kuis Etika Profesi Teknologi Informasi dan KomunikasiKuis Etika Profesi Teknologi Informasi dan Komunikasi
Kuis Etika Profesi Teknologi Informasi dan Komunikasi
 
Proposal pembuatan aplikasi
Proposal pembuatan aplikasiProposal pembuatan aplikasi
Proposal pembuatan aplikasi
 
Laporan praktikum basis data my sql
Laporan praktikum basis data my sqlLaporan praktikum basis data my sql
Laporan praktikum basis data my sql
 
5 penjadwalan aplod
5 penjadwalan aplod5 penjadwalan aplod
5 penjadwalan aplod
 
UML Aplikasi Rental Mobil
UML Aplikasi Rental MobilUML Aplikasi Rental Mobil
UML Aplikasi Rental Mobil
 

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

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 (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

Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024editwebsitesubdit
 
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKAKELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKAppgauliananda03
 
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxModul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxRIMA685626
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxwawan479953
 
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptxTEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptxMOHDAZLANBINALIMoe
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxDedeRosza
 
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfAndiCoc
 
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdfMODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdfAndiCoc
 
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxPPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxriscacriswanda
 
PPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxPPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxDEAAYUANGGREANI
 
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHANTUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHANwawan479953
 
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
 
Memperkasakan Dialog Prestasi Sekolah.pptx
Memperkasakan Dialog Prestasi Sekolah.pptxMemperkasakan Dialog Prestasi Sekolah.pptx
Memperkasakan Dialog Prestasi Sekolah.pptxsalmnor
 
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfModul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfKartiniIndasari
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxJuliBriana2
 
Pengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, FigmaPengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, FigmaAndreRangga1
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...Kanaidi ken
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024ssuser0bf64e
 
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfKanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfAkhyar33
 

Recently uploaded (20)

Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
 
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKAKELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
 
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxModul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
 
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptxTEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
 
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
 
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdfMODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
 
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxPPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
 
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
 
PPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxPPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptx
 
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHANTUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
 
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
 
Memperkasakan Dialog Prestasi Sekolah.pptx
Memperkasakan Dialog Prestasi Sekolah.pptxMemperkasakan Dialog Prestasi Sekolah.pptx
Memperkasakan Dialog Prestasi Sekolah.pptx
 
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfModul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
 
Pengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, FigmaPengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, Figma
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
 
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfKanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
 

JOIN

  • 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