đź’»
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
  • Bentuk Normal Tahap Pertama (1st Normal Form)
  • Bentuk Normal Tahap Kedua (2nd Normal Form)
  • Bentuk Normal Tahap Ketiga (3rd Normal Form)
  • Langkah-langkah prakikum
  • Langkah 1
  • Langkah 2
  • Langkah 3
  • Langkah 4

Was this helpful?

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

Normalization 1NF, 2NF And 3NF

PreviousWhat is Normalization ?NextNormalization 4NF, 5NF

Last updated 4 years ago

Was this helpful?

Bentuk Normal Tahap Pertama (1st Normal Form)

Suatu tabel memenuhi 1stNF jika dan hanya jika tabel tersebut tidak memiliki atribut bernilai banyak atau lebih dari satu atribut dengan domain nilai yang sama.

Bentuk Normal Tahap Kedua (2nd Normal Form)

Suatu tabel memenuhi 2ndNF jika dan hanya jika :

  1. Tabel tersebut memenuhi 1stNF

  2. Setiap atribut yang bukan kunci utama (primary key) tergantung secara fungsional terhadap semua atribut kunci utama dan bukan tergantung secara fungsional hanya pada sebagian atribut kunci utama.

Bentuk Normal Tahap Ketiga (3rd Normal Form)

Suatu tabel memenuhi bentuk normal 3rdNF jika dan hanya jika :

  1. Tabel tersebut memenuhi 2ndNF.

  2. Tidak ada atribut bukan kunci tergantung secara transitive pada kunci utama.

Langkah-langkah prakikum

Langkah 1

  1. Bukalah berkas spreadsheet bernama DataSoftwareHouseAustria.XLSX di yang dilampirkan bersama jobsheet ini.

  2. File tersebut berisi data pegawai software house di Austria beserta atribut lain yang mendukung project yang dikerjakan di perusahaan tersebut.

  3. Teliti setiap atribut yang tertulis pada data tersebut dan amati ketidak sesuaian atribut yang ada sehingga mempersulit proses insert, update, delete dan modifikasi.

  4. Pertimbangkan pula bagaimana bentuk yang baik dan sesuai dengan aturan normalisasi yang efisien.

Langkah 2

  • Normalisasi data sesuai bentuk normal kesatu karena data pada langkah 1 tidak memenuhi bentuk normal data bagian satu (1NF). Maka akan menghasilkan dekomposisi tabel sebagai berikut :

  • Lakukan pengecekan (Lossless–Join Decomposition) pada tabel baru hasil dekomposisi tersebut! \

Langkah 3

  1. Pengecekan FD pada tabel hasil langkah 2 akan menghasilkan data FD sebagai berikut :

    Pada tabel project

    num_project → name_project

    Pada tabel employee

    • {num_project, num_employee, num_jobclass} ↛ name_employee

    • {num_project, num_employee, num_jobclass} ↛ street_address

    • {num_project, num_employee, num_jobclass} ↛ city

    • {num_project, num_employee, num_jobclass} ↛ postal_code

    • {num_project, num_employee, num_jobclass} ↛ name_jobclass

    • {num_project, num_employee, num_jobclass} ↛ chr_per_hour

    • {num_project, num_employee, num_jobclass} ↛ hours_billed

      FD

    • num_project → name_project

    • no_employee →{name_employee, street_address, city, postal_code}

    • no_jobclass →{name_jobclass, chr_per_hours}

    • {num_project, num_employee,num_jobclass} → hours_billed

  2. Normalisasi tabel menjadi bentuk 2NF. Berdasarkan informasi FD maka dekomposisi tabel yang semula 2 tabel menjadi 4 tabel sebagai berikut :

    • project{num_project, name_project}

    • employee{no_employee, name_employee, street_address, city, postal_code}

    • jobclass{no_jobclass, name_jobclass, chr_per_hours}

    • hours{num_project, num_employee,num_jobclass, hours_billed}

  3. Lakukan pengecekan (Lossless–Join Decomposition) dan (dependency preservation) pada tabel baru hasil dekomposisi tersebut! \

Langkah 4

  1. Mencari hubungan syarat 3NF dengan mempertimbangkan X → A sesuai dengan ketentuan 3NF Terdapat beberapa non key yang memiliki ketergantungan dengan non key lain, sesuai FD baru sebagai berikut:

    • {city, street_address} → postal_code dimana X adalah superkey

    • name_project → {name_employee, name_jobclass} dimana X adalah superkey

    • {name_employee, name_jobclass} → chr_per_hours dimana dimana X adalah superkey

  2. Berdasarkan FD tersebut maka tabel pada langkah 3 diperbaharui dekomposisinya menjadi :

    • project{num_project, name_project}

    • employee{no_employee, name_employee, street_address }

    • jobclass{no_jobclass, name_jobclass, chr_per_hours}

    • hours{num_project, num_employee,num_jobclass, hours_billed}

    • address{city, street_address, postal_code}

    • jobclass_detail{name_project, name_employee, name_jobclass}

    • charge{name_employee, name_jobclass, chr_per_hours}

  3. Lakukan pengecekan (Lossless–Join Decomposition) dan (dependency preservation) pada tabel baru hasil dekomposisi tersebut! \

sini