Sudah kenal sama ORM?

Deby Silvia Agnes
wripolinema
Published in
3 min readJan 13, 2020

Ketika kalian hendak mendalami backend, yang harus kalian ketahui adalah istilah ORM. Hal ini penting sekali, karena merupakan pondasi dasar sebelum lanjut survive lebih dalam lagi.

Apa sih ORM?

Object Relational Mapping

ORM (Object Relation Mapping) merupakan teknik yang merubah suatu table menjadi sebuah object yang nantinya mudah untuk digunakan. Object yang dibuat memiliki property yang sama dengan field — field yang ada pada table tersebut.

ORM memungkinkan kita melakukan query dan memanipulasi data di database menggunakan object oriented.

Kenapa sih pake ORM?

Biasanya developer melakukan kesalahan ketika menuliskan query database. Karena memang terdapat aturan tersendiri dalam penulisan syntaxnya.
Hal ini membuat developer kesulitan dan bahkan memerlukan banyak waktu untuk hanya melakukan query.
Maka diperlukan ORM untuk mempermudah mengakses database tanpa melakukan query sama sekali.

Kalo gak pake ORM bisa gak sih?

Bisa kok. Cuman memang dasar — dasar query database itu harus bener — bener paham betul biar bisa bikin query yang oke dan bisa nyajikan data yang diperlukan. Dan memang kebanyakan company besar itu jarang banget yang pakai ORM sebenernya. Karena data — data yang dibutuhkan di project yang besar itu gak bisa di cover sama si ORM ini.

Gimana cara kerjanya?

Karena kita udah tau pentingnya pake ORM, cuss sekarang kita bakal bahas gimana ORM bekerja.
Jadi awalnya, kita perlu mendefinisikan suatu object. Lalu kita buat field — field pada object sesuai dengan field — field pada table di database.
Misalkan kita akan membuat object bernama makanan. Field yang dimiliki adalah id, nama, harga. Selanjutnya object tersebut dapat kita gunakan untuk melakukan CRUD tanpa menggunakan query.

Kelebihan 😄

  1. Terdapat banyak fitur seperti transactions, connection pooling, migrations, seeds, streams, dan lain sebagainya.
  2. meminimalisir kesalahan dalam penulisan query, daripada kita menulisnya secara manual.
  3. Memungkinkan kita memanfaatkan OOP (object oriented programming) dengan baik
  4. Membuat akses data menjadi lebih abstrak (kita dapat mengubahnya kapanpun) dan portable

Kekurangan 😟

  1. Untuk project besar, lebih baik menggunakan query SQL sendiri. Karena untuk project yang besar, keperluan data yang di deliver juga lebih beragam. ORM memang mempermudah bikin query, tapi dia gak bisa provide semua yang dibutuhkan mirip dengan menggunakan query SQL biasa.
  2. konfigurasi awal ORM dapat menjadi sulit. Maka diperlukan untuk mempelajarinya terlebih dahulu sebelum menggunakannya.
  3. Perlu adanya training dan riset di team sebelum menggunakan ORM. Hal ini akan memakan waktu lebih lama dalam pengerjaan suatu project.
  4. ORM mengurangi performance dari suatu proses. Karena memang mekanisme yang dipakai dalam suatu ORM itu beda dengan mekanisme query SQL biasa.
  5. Penggunaan ORM membuat kita kurang memahami struktur database dan query SQL

Contoh penerapan ORM di Node JS

Dalam melakukan coding backend, saya sering menggunakan node JS. Jika ingin tahu tentang node JS lebih lanjut, mungkin kita dapat berjumpa di artikel selanjutnya 😉
Node JS memiliki ORM yang biasanya saya gunakan. Yaitu Sequelize.
Sequelize adalah promise-based ORM Node.js untuk Postgres, MySQL, MariaDB, SQLite, dan Microsoft SQL Server.
Penjelasan lebih lanjut disini.

Cara penggunaannya sebagai berikut :

Install Sequelize dan package yang dibutuhkan

npm install --save sequelize# install package sesuai jenis database yang akan digunakan
npm install --save sqlite3 # sqlite
npm install --save tedious # mssql
npm install --save pg pg-hstore # postgresql
npm install --save mysql2

Koneksi Sequelize ke database

config/db.js

Membuat model, misalkan kita menggunakan object Movie

models/Movie.js

Penggunaan model pada controller

controllers/movieController.js

Untuk jenis ORM pada bahasa pemrograman lain, kalian dapat membacanya di wikipedia.

In the end,
saya sarankan untuk mencobanya dan melihat cara kerjanya, tetapi orang yang sangat kuat ilmunya tentang database akan memberikan kinerja yang lebih baik daripada sistem ORM. Kembali lagi kepada kebutuhan😌, jika kita memang membutuhkan query yang tidak terlalu rumit, kita dapat menggunakan ORM.

sumber :

--

--

Deby Silvia Agnes
wripolinema

Mengamalkan ilmu dapat menjadikan ilmu dan orang yang berilmu menjadi bermanfaat..