Apa itu Active Record ?
Active Record ialah Model dalam Arsitektur MVC yang merupakan lapisan sistem yang bertanggung jawab untuk merepresentasikan data bisnis dan logika. Active Record memfasilitasi pembuatan dan penggunaan objek bisnis yang datanya membutuhkan penyimpanan persisten ke database.
Ini merupakan implementasi dari pola Active Record yang dengan sendirinya merupakan deskripsi dari sistem Object Relational Mapping (ORM).
Baca Juga : Kumpulan Kode-Kode Program PHP Beserta Fungsi dan Contohnya
Pola Active Record
Dalam Active record, objek membawa data persistent dan perilaku yang beroperasi pada data tersebut. Active Record berpendapat bahwa memastikan logika akses data sebagai bagian dari objek akan mendidik pengguna objek itu tentang cara menulis dan membaca dari database.
Object Relational Mapping (ORM)
Object Relational Mapping atau yang lebih dikenal ORM adalah tehnik yang menghubungkan objek aplikasi ke tabel didalam Relational Database Management System (RDMS).
Dengan menggunakan ORM, property dan hubungan objek dalam aplikasi dapat dengan mudah disimpan dan diambil dari database tanpa menulis statement SQL secara langsung.
Active Record dalam Framework ORM
Active Record memberikan kita mekanisme yang memiliki fungsi seperti :
- Merepresentasikan Model beserta Datanya
- Merepresentasikan turunan hirarki melalui Model terkait
- Memvalidasi Model sebelum dimasukan ke Database
- Melakukan operasi database berbasis Object Oriented
Konvensi Konfigurasi dalam Active Record
Saat menulis aplikasi menggunakan bahasa atau Framework pemrograman lain, mungkin perlu untuk menulis banyak kode konfigurasi.
Terutama ini berlaku untuk Framework ORM secara umum. Namun, jika kamu mengikuti konvensi yang diadopsi oleh Rails, kamu hanya perlu melakukan sedikit konfigurasi atau bahkan tidak sama sekali saat membuat Model Active Record.
Naming Convention
Secara default, Active Record menggunakan beberapa Naming Convetion untuk mencari tahu bagaimana pemetaan antara model dan tabel database harus dibuat. Rails akan mencocokan nama class kamu untuk menemukan tabel database masing-masing.
Sebagai contoh Class Buku, kamu harus memiliki tabel database yang disebut buku juga. Mekanisme pluralisasi Rails sangat kuat, karena mampu mempluralkan (dan membuat singularisasi) kata-kata biasa dan tidak teratur.
Baca Juga Artikel Lainnya :
- Panduan Cara Menginstall Program Ruby Pada Windows dan Linux
- Kelebihan dan Peluang Kerja Jika Kamu Menguasai Program Ruby!
Saat menggunakan nama class yang terdiri dari dua kata atau lebih, nama class Model harus mengikuti konvensi Ruby yaitu menggunakan formulir CamelCase. Sedangkan nama tabel harus berisi kata-kata yang dipisahkan oleh garis bawah. Contoh:
- Model Class – Singular dengan huruf pertama dari setiap kata dengan huruf
- Tabel Database – Plural dengan garis bawah yang memisahkan kata-kata
Convention Schema
Active Record menggunakan Naming convention untuk kolom dalam tabel database, tergantung pada tujuan kolom ini.
- Foreign Key – Bidang ini harus dinamai mengikuti pola singularized_table_name_id (misalnya Item_id, order_id). Ini adalah Field yang akan dicari Active Record ketika kamu membuat asosiasi antara model kamu.
- Primary Key – Secara default, Active Record akan menggunakan kolom integer bernama id sebagai kunci utama tabel (bigint untuk PostgreSQL dan MySQL, integer untuk SQLite). Saat menggunakan Migration Active Record untuk membuat tabel kamu, kolom ini akan secara otomatis dibuat.
Baca Juga : Membuat Program Kalkulator Sederhana Dengan Menggunakan Program Ruby
Ada juga beberapa nama kolom opsional yang akan menambahkan fitur tambahan ke Instance Active Record :
- Created_at – Secara otomatis diatur ke tanggal dan waktu saat ini ketika catatan pertama kali dibuat.
- updated_at – Secara otomatis ditetapkan ke tanggal dan waktu saat ini setiap kali catatan dibuat atau diperbarui.
- lock_version – Menambahkan penguncian ke Model.
- type – Menentukan bahwa model menggunakan Single Table Inheritance.
- (associ_name) _type – Menyimpan tipe untuk asosiasi polimorfik.
- (table_name) _count – Digunakan untuk men-cache jumlah objek yang dimiliki pada asosiasi. Misalnya, kolom comments_count dalam class Artikel yang memiliki banyak contoh Komentar akan men-cache jumlah komentar yang ada untuk setiap artikel.
Membuat Model Active Record
Sangat mudah untuk membuat Model Active Record. Yang harus kamu lakukan adalah mensubclass class ApplicationRecord :
class Product < ApplicationRecord
end
Code diatas akan membuat model Product, dipetakan ke tabel Product di database. Dengan melakukan ini, kamu juga akan memiliki kemampuan untuk memetakan kolom setiap baris dalam tabel itu dengan atribut instance dari model kamu. Misalkan tabel produk dibuat menggunakan pernyataan SQL (atau salah satu ekstensi) seperti:
CREATE TABLE products (
id int(11) NOT NULL auto_increment,
name varchar(255),
PRIMARY KEY (id)
);
Skema di atas adalah membuat tabel dengan dua kolom: id dan name. Setiap baris tabel ini mewakili produk tertentu dengan dua parameter ini. Dengan demikian, kamu dapat menulis kode seperti berikut :
p = Product.new
p.name = “Buku Baru”
puts p.name # “Buku Baru”
Baca Juga : Mengenal Konsep Arsitektur MVC dalam Ruby On Rail
CRUD : Writing dan Reading Data
CRUD adalah akronim untuk empat kata kerja yang kita gunakan untuk melakukan operasi tertentu pada data : Create, Read, Update dan Delete. Active Record secara otomatis membuat metode untuk memungkinkan aplikasi membaca dan memanipulasi data yang disimpan dalam tabelnya.
Create
Objek Active Record dapat dibuat dari hash, block, atau atributnya ditetapkan secara manual setelah pembuatan. Metode New akan mengembalikan objek baru sementara Create akan mengembalikan objek dan menyimpannya ke database.
Misalnya, Kita akan membuat Model User dengan attribut nama dan pekerjaan. Method Create nantinya akan membuat dan menyimpan data ke database.
user = User.create(nama: “Rudi”, pekerjaan: “Karyawan Swasta”)
Dengan Method New, sebuah objek bisa dipakai tanpa disimpan terlebih dahulu.
user = User.new
user.nama = “Rudi”
user.pekerjaan = “Karyawan Swasta”
Baca Juga : Cara membuat Login Form
Read
Active Record sangat kaya akan Application Programming Interface (API) untuk mengakses data didalam database. Dibawah ini adalah contoh metode akses data yang berbeda yang ada pada Active Record.
# Menampilkan semua User
users = User.all
# Menampilkan User di urutan pertama
user = User.first
# Menampilkan User dengan nama Rudi
Rudi = User.find_by(nama: ‘Rudi’)
# Menampilkan Semua User dengan nama Rudi dan pekerjaan karyawan Swasta dengan mulai dari paling pertama ke bawah
users = User.where(name: ‘Rudi’, pekerjaan: ‘Karyawan Swasta’).order(created_at: :desc)
Update
Begitu Active Record di input, attributnya bisa kamu ubah kembali dan di save ke database.
user = User.find_by(name: ‘Rudi’)
user.name = ‘Rendi’
user.save
Untuk mengubah atau mengupdate data kita bisa menggunakan map hashing pada atribut nama sesuai yang diinginkan.
user = User.find_by(name: ‘Rudi’)
user.update(name: ‘Rendi’)
Delete
Di Active Record juga, kamu bisa menghapus data yang sudah diinput ke database dengan perintah destroy
user = User.find_by(name: ‘Rudi’)
user.destroy
Berikutnya Baca : Fetching Data Application Programming Interface (API) pada React JS
Sumber : guides.rubyonrails.org
Keren bangettt