đź’»
Doyatama Code
  • Welcome to Doyatama Code
  • Terms and Conditions
  • Learning Site
  • Editor Online
  • Group Telegram Recommended
  • Project
    • Cek Kata
      • Pengenalan
      • Membuat Backend
      • Membuat Frontend
  • Training
    • Java Programming Language
      • Step 1 - Basic
        • Dasar Algoritma
        • Flowchart
        • Studi Kasus
        • Variabel, Tipe Data dan Operator
        • Pemilihan
        • Pemilihan Bersarang
        • Perulangan
        • Perulangan Bersarang
        • Array 1 Dimensi
        • Array 2 Dimensi
        • Fungsi
        • Fungsi Rekursif
      • Step 1 Assignment
      • Step 2 - Data Structure Algorithm
      • Step 2 - Assignment
    • React Web Frontend Development
      • Step 1 - Basic Javascript
        • JavaScript Dasar untuk React – Variable, Object & Scope
        • JavaScript Dasar untuk React – “this” keyword
        • JavaScript Dasar untuk React – Array methods
        • JavaScript Dasar untuk React – Class & Module
        • HTML Dasar untuk React
      • Step 1 - Assignment
        • Assignment - JavaScript Dasar untuk React - Variable, Object & Scope
        • Assignment - JavaScript Dasar untuk React - "this" keyword
        • Assignment - JavaScript Dasar untuk React - Array methods
        • Assignment - JavaScript Dasar untuk React - Class & Module
        • Assignment - HTML Dasar untuk React
      • Step 2 - Going to React JS
        • Introduction to React JS
        • Components & Props
        • State & LifeCycle
        • Lists & Forms
        • Konsep “Lifting State Up”
      • Step 2 - Assignment
        • Assignment - Introduction to React JS
        • Assignment - Components & Props
        • Assignment - State & LifeCycle
      • Step 3 - Going to Redux
        • Bagaimana Berpikir di React
        • Hooks & Context
        • React Router
        • Redux & React-Redux
        • Redux Middleware menggunakan Redux-Thunk
      • Step 3 - Assignment
      • Step 4 - Deploy and Make Final Project
        • Testing menggunakan Jest & RTL
        • Deployment
        • Final Project – Mocking
        • Final Project – Static Version
        • Final Project – Interactive Version & Deploy
      • Step 4 - Assignment
      • Big Project -
    • Laravel Web Development
      • Step 1 - Basic Web Programming
        • Berkenalan dengan HTML
        • CSS Basic to Ninja
        • CSS Bootstrap
        • Introduction Javascript
        • Dom JavaScript
      • Step 1 - Assignment
      • Step 2 - Materials
      • Step 2 - Assignment
      • Step 3 - Materials
      • Step 3 - Assignment
      • Step 4 - Materials
      • Step 4 - Assignment
      • Big Project
    • React Native Mobile Apps Development
      • Step 1 - Basic
        • Command Line
        • Git
        • Javascript – Intro
        • Javascript – String Properties & Method
        • Javascript – Conditional
        • Javascript – Loop
        • Javascript – Function
        • Javascript – Array
      • Step 1 - Assignment
        • Assignment - JavaScript String Properties & Method
        • Assignment - Javascript Looping
        • Assignment - Javascript Function
        • Assignment - JavaScript Array
      • Step 2 - Materials
        • Javascript – Object
        • Javascript – Class
        • Javascript – Asynchronous
        • Javascript – ES6
        • React Native Intro
      • Step 2 - Assignment
      • Step 3 - Materials
        • Mockup Figma
        • React Native – Components
        • React Native – Styling & Flexbox
        • React Native – Components API & Lifecycle
        • React Native – Navigation
      • Step 3 - Assignment
      • Step 4 - Materials
        • React Native – State Management (Redux)
        • React Native – Build & Release APK/IPA
        • React Native – Codepush
        • React Native – Publish Google Play Store/App Store
        • React Native – Firebase Data Storage
        • React Native – Function Component & Hooks
      • Step 4 - Assignment
    • Learning Database
      • Step 1 - Entity Relationship Diagram
        • Contoh Penerapan Basis Data
        • Introduction to Entity Relationship Diagram (ERD)
        • Introduction to Entity Relationship Diagram (ERD) Part 2
        • ERD to Relational Model
        • ERD to Relational Model Part 2
      • Step 1 - Assignment
      • Step 2 - Normalization
        • What is Normalization ?
        • Normalization 1NF, 2NF And 3NF
        • Normalization 4NF, 5NF
      • Step 2 - Assignment
      • Step 3 - MySQL
        • MySQL - Data Definition Language (DDL)
        • MySQL - Data Manipulation Language (DML)
        • MySQL - Data Retrieval Language (DRL)
        • MySQL - Select JOIN
      • Step 3 - Assignment
    • Boilerplate
Powered by GitBook
On this page
  • Teori
  • Praktikum

Was this helpful?

Export as PDF
  1. Training
  2. Learning Database
  3. Step 3 - MySQL

MySQL - Select JOIN

PreviousMySQL - Data Retrieval Language (DRL)NextStep 3 - Assignment

Last updated 4 years ago

Was this helpful?

Teori

  1. Relationship

    Relationship adalah suatu hubungan antara beberapa entitas. Konsep ini sangat penting sekali di dalam basis data, di mana memungkinkan entitas-entitas untuk saling berhubungan satu sama lain. Di dalam sebuah relationship, primary key memiliki peran penting untuk mengaitkan entitas. Selain itu, primary key juga digunakan untuk mendefinisikan batasan keterhubungan.

  2. Join

    Join merupakan salah satu konstruksi dasar dari SQL dan basis data. Join dapat didefinisikansebagai kombinasi record dari dua atau lebih tabel di dalam basis data relasional dan menghasilkan sebuah tabel (temporary) baru yang disebut sebagai joined table. Join dapat diklasifikasikan ke dalam dua jenis: inner dan outer.

    • Inner Join

      Inner join pada dasarnya adalah menemukan persimpangan (intersection) antara dua buah tabel. Sintaks inner join diperlihatkan sebagai berikut:

        SELECT A1, A2, ..., An 
        FROM r1 
        INNER JOIN r2 
        ON r1.join_key = r2.join_key

      Inner join juga dapat direpresentasikan dalam bentuk implisit.

        SELECT A1, A2, ..., An 
        FROM r1, r2 
        WHERE r1.key = r2.key

      Misalkan terdapat tabel A dan B, maka hasil inner join dapat diperlihatkan—sebagai bidang terarsir—dalam diagram Venn seperti Gambar 1.

      Gambar 1. Inner Join

    • Outer Join

      • Left Outer Join

        Left outer join (atau left join) mengembalikan semua nilai dari tabel kiri ditambah dengan nilai dari tabel kanan yang sesuai (atau NULL jika tidak ada nilai yang sesuai).

        Sintaks

          SELECT A1, A2, ..., An 
          FROM r1 
          LEFT OUTER JOIN r2 
          ON r1.join_key = r2.join_key

        Left outer join antara tabel A dan B dapat diilustrasikan dalam diagram Venn seperti Gambar 2

        Gambar 2. Left Outer Join

        • Right Outer Join

          Right outer join (atau right join) pada dasarnya sama seperti left join, namun dalam bentuk terbalik—kanan dan kiri. Sintaks right outer join diperlihatkan sebagai berikut:

          Sintaks

          SELECT A1, A2, ..., An 
          FROM r1 
          RIGHT OUTER JOIN r2 
          ON r1.join_key = r2.join_key

          Right outer join antara tabel A dan B dapat diilustrasikan dalam diagram Venn seperti Gambar 3

          Gambar 3. Right Outer Join

        • Full Outer Join

          Full outer join (atau full join) pada hakekatnya merupakan kombinasi dari left dan right join. Sintaks full outer join diperlihatkan sebagai berikut:

          Sintaks

          SELECT A1, A2, ..., An 
          FROM r1 
          FULL OUTER JOIN r2 
          ON r1.join_key = r2.join_key

          Bentuk visual dari full outer join dapat diperlihatkan menggunakan diagram Venn seperti Gambar 4.

          Gambar 4. Full Outer Join

          Selain empat jenis join yang utama di atas, masih ada beberapa variasi join lainnya, seperti CROSS JOIN (cartesian product), NATURAL JOIN, dan sebagainya. Perlu juga diperhatikan, join bisa diimplementasikan dalam bentuk bersarang (nested join). Jadi, di dalam sebuah operasi join bisa terdapat operasi join lainnya.

Praktikum

Relationship

  • Buat database nama_kantor(isi dengan nama anda)

  • Buat tabel karyawan dan tabel departemen dengan struktur sebagai berikut:

      CREATE TABLE karyawan ( nama varchar(30) NOT NULL, id_dep int(5) NOT NULL
      ) ENGINE=MyISAM;
    
        CREATE TABLE departemen ( id_dep int(5) NOT NULL, nama_dep varchar(30) NOT NULL, PRIMARY KEY (id_dep)
        ) ENGINE=MyISAM;

    Data yang digunakan adalah sebagai berikut:

        Tabel Karyawan
        Nama    id_dep
        Agus    10    
        Budi    16
        Citra    12
        Dani    17
    
        Tabel Departmen
        id_dep    nama_dep
        10    Penelitian
        11    Pemasaran
        12    SDM
        13    Keuangan

Inner Join

Sebagaimana dijelaskan, inner join akan mengembalikan data di tabel A dan B yang sesuai. Sebagai contoh, kita bisa mendapatkan data karyawan yang memiliki departemen.

  • Data karyawan yang memiliki departemen

    Cara 1

    Cara 2

    Dalam pengambilan data ini, kita juga bisa menspesifikasikan field terkait. Sebagai contoh, hanya mengambil nama karyawan dan nama departemen saja.

    Agar penulisan SQL lebih efisien, kita dapat memanfaatkan fitur “ derived table” (atau alias).

    Pada pernyataan SQL di atas, tabel karyawan dinotasikan dengan huruf k dan tabel departemen menggunakan huruf d.

    Outer Join

  • Left Outer Join

    Data seluruh karyawan (yang memiliki departemen maupun tidak)

    Data karyawan yang tidak memiliki departemen

  • Right Outer Join

  • Full Outer Join

  • Cross Join

    Cara 1

    Cara 2

Right Outer Join
Full Outer Join
Inner Join
Left Outer Join