🌐
Miniclass Web
  • Miniclass Web
  • 1. Pengenalan Pemrograman Web
    • Cara Kerja Website
    • Pengenalan Backend dan Frontend
    • HTTP Request dan HTTP Response
  • 2. HTML
    • Pengenalan HTML
    • Text Formatting
    • Link
    • Media
    • List
    • Table
    • Form
    • Grouping
  • 3. CSS
    • Pengenalan CSS
    • Selector CSS
    • Text Formatting
    • Background
    • Border
    • Height dan Width
    • Spacing
    • Layouting
    • Responsive Design
    • Membuat Template Web Responsive
  • 4. Javascript
    • Pengenalan JavaScript
    • Javascript for Java developer
    • Array
    • Fungsi
    • Manipulasi DOM
    • Event
    • Fetch API
    • Object JavaScript
    • UI Component Lanjutan
  • 5. Node.js
    • Pengenalan Node.js
    • Membuat Server HTTP
    • Routing
    • Import Export
    • Node Package Manager
    • Nodemon
  • 6. Express.js
    • Pengenalan Express.js
    • HTTP Method
    • Menerima Data dari URL
    • Middleware
    • Menerima Data dari Body
    • Mengunggah File
    • Menampilkan File dalam Folder
    • Menyimpan Data ke Database MySQL
  • 7. Modern Frontend Development
    • ECMAScript
    • Transpiler
    • Module Bundler
  • 8. React Fundamental
    • Pengenalan React JS
    • Props
    • Event
    • State
    • Conditional Rendering
    • Component Mapping
    • Side Effect
    • Custom Hook
  • 9. React State Management
    • Lifting State Up
    • Context
    • Reducer
  • 10. React Performance
    • Debounce
    • Throttling
    • Memoization
    • Profiling
  • 11. React Testing
    • Component Testing
    • Hook Testing
    • Mocking
    • End to End Testing
  • 12. Object Relational Mapping
    • Pengenalan Object Relational Mapping
  • 13. Document Oriented Database
    • Document Oriented Database
    • Object Document Mapping
  • 14. Web Service
    • REST
    • GraphQL
  • 15. Autentikasi
    • JSON Web Token
    • Membuat Web Service Sederhana
  • 16. Microservices
    • Microservices
    • Microservices Gateway
    • Message Queue
    • Remote Procedure Call
    • Membuat Micro Service Sederhana
  • 18. Caching
Powered by GitBook
On this page
  • 1. Permasalahan
  • 2. Penjelasan ORM
  • 3. Penerapan ORM dengan Sequelize
  • 3.1. Install Sequelize
  • 3.2. Mengoneksikan Sequelize ke Database
  • 3.3. Membuat Model
  • 3.4. Menggunakan Model pada Controller

Was this helpful?

  1. 12. Object Relational Mapping

Pengenalan Object Relational Mapping

PreviousEnd to End TestingNextDocument Oriented Database

Last updated 4 years ago

Was this helpful?

1. Permasalahan

Masalah yang sering dialami oleh developer ketika melakukan perubahan data pada database yaitu melakukan kesalahan dalam penulisan query SQL, hal ini wajar karena SQL memiliki aturan sendiri dalam penulisan syntaxnya

2. Penjelasan ORM

ORM merupakan suatu teknik untuk mengubah tabel pada database menjadi objek yang mudah digunakan, dimana objek tersebut akan memiliki properti yang sama dengan field yang dimiliki oleh tabel tersebut

Dengan ORM kita hanya perlu mendefinisikan sebuah objek dan menuliskan field apa saja yang dimiliki oleh objek tersebut, misalnya kita akan membuat objek biodata, maka field yang dimiliki adalah id, nama, dan alamat, setelah itu kita bisa menggunakan objek tersebut untuk melakukan CRUD tanpa menuliskan query SQL sama sekali

3. Penerapan ORM dengan Sequelize

Sequelize merupakan ORM yang mensupport berbagai macam database seperti msyql, mssql, postgresql dan lain - lain, berikut langkah - langkah untuk menggunakan sequalize

3.1. Install Sequelize

# Menginstall sequalize
npm install --save sequelize

# Install package tambahan berdasarkan jenis database
npm install --save pg pg-hstore # postgresql
npm install --save mysql2 # mysql
npm install --save sqlite3 # sqlite
npm install --save tedious # mssql

3.2. Mengoneksikan Sequelize ke Database

// config/db.js

const Sequelize = require("sequelize")

const sequalize = new Sequelize("database", "username", "password", {
  host: "localhost",
  dialect: "mysql" | "sqlite" | "postgres" | "mssql",

  // SQLite only
  storage: "path/to/database.sqlite"
})

module.exports = sequalize

3.3. Membuat Model

// models/Biodata.js

const Sequelize = require("sequelize")
const sequelize = require("../config/db")

const Biodata = sequelize.define(
  "biodata",
  {
    id_biodata: {
      type: Sequelize.INTEGER,
      primaryKey: true,
      autoIncrement: true
    },
    nama: {
      type: Sequelize.STRING(100)
    },
    alamat: {
      type: Sequelize.STRING(150)
    }
  },
  { timestamps: false }
)

module.exports = Biodata

3.4. Menggunakan Model pada Controller

// controllers/biodataController.js

const Biodata = require("../model/Biodata")

module.exports = {
  index: function(req, res) {
    Biodata.findAll().then(function(rows) {
      res.render("biodata/index", { data: rows })
    })
  },

  create: function(req, res) {
    res.render("biodata/create")
  },

  store: function(req, res) {
    Biodata.create(req.body).then(function() {
      res.redirect("/biodata")
    })
  },

  edit: function(req, res) {
    Biodata.findByPrimary(req.params.id).then(function(row) {
      res.render("biodata/edit", { data: row })
    })
  },

  update: function(req, res) {
    Biodata.findByPrimary(req.params.id).then(function(row) {
      row.update(req.body)
      res.redirect("/biodata")
    })
  },

  destroy: function(req, res) {
    Biodata.findByPrimary(req.params.id).then(function(row) {
      row.destroy()
      res.redirect("/biodata")
    })
  }
}
pengenalan-orm.jpg