Langsung ke konten utama

Ruby on Rails - Sebuah Ringkasan

David Heinemeier Hansson menciptakan Ruby on Rails dengan prinsip Convention over Configuration, yaitu kerangka kerja yang meminimalkan kebutuhan konfigurasi rumit. Rails dirancang dengan konvensi bawaan yang kuat sehingga memudahkan pengembangan dan perubahan aplikasi.

Rails bersifat open source dan dibangun dengan bahasa pemrograman Ruby, yang terkenal sederhana dan ekspresif. Rails memungkinkan pengembangan cepat, misalnya menambahkan resource baru melalui RESTful routes dan tampilan templated dengan mudah.

Rails memiliki komunitas besar dan berpengalaman, sehingga solusi mudah ditemukan melalui Stack Overflow, GitHub issues, blog, tutorial, maupun buku. Dengan dukungan tersebut, masalah biasanya bisa cepat teratasi hanya dengan pencarian di Google.

Rails Conventions

Rails menggunakan pola MVC (Model-View-Controller) untuk mengatur arsitektur aplikasi.

  1. Model
    • Berhubungan langsung dengan database melalui ActiveRecord ORM.
    • Setiap model mewakili tabel di database (contoh: User mewakili tabel users).
    • Mendukung validasi (uniqueness, presence, regex, dll.), asosiasi (belongs_to, has_many), serta callback (before_create, after_save).
    • Contoh:
    • User.find(42) #=> {id: 42, name: "John"} User.create(name: "James")
  2. Controller
    • Menghubungkan request HTTP dengan Model (data) dan View (tampilan).
    • Menangani logika tambahan seperti session, otorisasi, error, dan redirect.
    • Menggunakan instance variable (@variable) agar data dari model bisa diakses di View.
    • Contoh alur: request → controller action → ambil data dari model → kirim ke view.
  3. View
    • Biasanya berupa template HTML dengan ERB (Embedded Ruby).
    • Menampilkan data yang dikirim dari controller.
    • Bisa berupa format lain: JavaScript, JSON, XML, CSS, bahkan CSV.
    • Contoh ERB:
    • <%= @user.name %>

Dengan pola MVC, Rails memisahkan data (Model), logika aplikasi (Controller), dan tampilan (View) sehingga kode lebih terstruktur, mudah dibaca, dan gampang dikembangkan.

Ruby Gems

Ruby Gems adalah paket kode mandiri (library) di ekosistem Ruby yang berfungsi untuk menyelesaikan masalah pemrograman tertentu tanpa harus menulis ulang kode dari nol.

Contoh populer:

  • Devise → membantu membuat sistem autentikasi (login, registrasi, dsb).
  • Puma → server HTTP multithread untuk menjalankan aplikasi Rails di lokal maupun production.

Tersedia ribuan Gem yang bisa digunakan, mulai dari manajemen database, autentikasi, testing, hingga deployment. Pengelolaan Gem dilakukan menggunakan RubyGems (package manager Ruby) dan biasanya didefinisikan dalam file Gemfile pada proyek Ruby on Rails.

Version Manager

Mengapa Rails Project Membutuhkan Version Manager?

Ketika mengembangkan aplikasi dengan Ruby on Rails, salah satu tantangan terbesar adalah mengelola versi Ruby dan Rails. Tidak jarang, satu proyek berjalan dengan Ruby 2.7, sementara proyek lain butuh Ruby 3.1.

Begitu juga dengan Rails: ada proyek lama yang masih bertahan di Rails 5, sedangkan proyek baru sudah menggunakan Rails 7.

Tanpa version manager, mengatur semua ini akan terasa sangat ribet. Dependency bisa saling bertabrakan, dan developer sering menghabiskan waktu hanya untuk memastikan lingkungan pengembangan tetap bersih. Di sinilah version manager berperan penting.

Version Manager adalah alat yang membantu developer untuk:

  • Menginstal banyak versi Ruby dalam satu sistem
  • Bisa punya Ruby 2.7.6, Ruby 3.0.4, dan Ruby 3.2.2 sekaligus tanpa konflik.

  • Berpindah antar versi dengan mudah
  • Cukup satu perintah untuk switch dari Ruby lama ke Ruby terbaru.

  • Memisahkan dependency antar proyek
  • Dengan gemset atau pengaturan isolasi, setiap proyek memiliki gem sendiri-sendiri. Jadi, versi rails, devise, atau gem lain tidak saling mengganggu.

  • Menjaga konsistensi di tim. 
  • Semua anggota tim bisa menggunakan versi Ruby/Rails yang sama dengan hanya mengikuti file konfigurasi di repo.

  • Membuat upgrade lebih aman. 
  • Ingin mencoba Ruby terbaru? Install dulu di version manager, lalu test proyekmu. Kalau ada masalah, tinggal switch balik ke versi lama.

Opsi Version Manager untuk Ruby on Rails

Ada beberapa tool populer yang digunakan komunitas Rails, diantaranya:

1. RVM

  • Salah satu yang paling terkenal dan ramah pemula.
  • Mendukung gemset, yaitu cara untuk memisahkan gem antar proyek.
  • Banyak dokumentasi dan tutorial tersedia.
  • Perintah instalasi & switching Ruby sederhana.
  • Cocok untuk developer yang baru belajar Rails dan ingin setup cepat.

2. rbenv

  • Lebih ringan dibanding RVM.
  • Tidak ada fitur gemset bawaan, tapi bisa dikombinasikan dengan Bundler atau plugin seperti rbenv-gemset.
  • Banyak digunakan di dunia profesional karena stabil dan minim konflik.
  • Cocok untuk tim development yang butuh lingkungan stabil tanpa banyak fitur tambahan.

3. chruby

  • Sangat minimalis dan sederhana.
  • Bekerja bersama ruby-install untuk mengelola instalasi Ruby.
  • Hampir tanpa fitur tambahan, hanya fokus pada switch Ruby versi.
  • Cocok untuk developer yang suka setup sederhana dan tidak ingin ribet.

4. asdf

  • Bukan hanya untuk Ruby, tapi juga mendukung banyak bahasa pemrograman lain (Node.js, Elixir, Python, Go, dsb).
  • Sangat berguna jika kamu bekerja di proyek yang membutuhkan lebih dari satu bahasa.
  • Menggunakan konsep plugin sehingga fleksibel.
  • Cocok untuk full-stack developer yang sering berpindah bahasa pemrograman.

Struktur Folder Proyek Rails

  
sample_app/
├── app/                # Folder utama untuk kode aplikasi
│   ├── controllers/    # Controller (logic untuk request/response)
│   ├── models/         # Model (representasi data & logika bisnis)
│   ├── views/          # View (template HTML/ERB untuk ditampilkan)
│   ├── helpers/        # Helper method untuk views
│   ├── jobs/           # Background jobs
│   └── mailers/        # Email templates & logic
│
├── bin/                # Script untuk menjalankan Rails & tugas lain
├── config/             # Konfigurasi aplikasi (routes, database, environment)
├── db/                 # File database & migration
├── lib/                # Library tambahan atau custom code
├── log/                # File log aplikasi
├── public/             # File statis (HTML, gambar, dll.)
├── storage/            # File upload (ActiveStorage)
├── test/ atau spec/    # Unit test / RSpec test
├── tmp/                # File sementara (cache, pid, dll.)
├── vendor/             # Dependensi eksternal (jarang dipakai sekarang)
│
├── Gemfile             # Daftar dependency (gem) aplikasi
├── Rakefile            # Task otomatis untuk Rails
└── config.ru           # File startup untuk Rack-based server (Puma/Passenger)
    
  

Penjelasan singkat

  • app/→ inti aplikasi (MVC: Model, View, Controller).
  • config/→ pengaturan routes, environment, database.
  • db/→ migration & schema database.
  • Gemfile→ daftar library Ruby yang digunakan proyek.
  • bin/rails→ command utama untuk menjalankan Rails.

Cara Membuat Proyek Ruby On Rails dari Nol

1. Pastikan Ruby dan Rails Terinstal

Pastikan sudah menginstal Ruby dan Rails di sistem. 

Cek versi Ruby: 
ruby -v


Cek versi Rails: 
rails -v


Jika Rails belum terinstal, jalankan: 
gem install rails

2. Buat Aplikasi Rails Baru

Gunakan perintah berikut untuk membuat project:
rails new NAMA_PROJECT 


Rails akan otomatis: 

    • Membuat struktur folder proyek. 
    • Menginstal gem default. 
    • Menambahkan file konfigurasi dasar. 

Jika ingin menambahkan opsi tertentu, lihat daftar lengkap dengan: 
rails new --help


Sebagai contoh: membuat project bernama sample_app dengan PostgreSQL sebagai database: 
rails new sample_app -d postgresql

3. Masuk ke Folder Proyek

Setelah project selesai dibuat, masuk ke folder aplikasi: 
cd sample_app

4. Jalankan Server Rails

Untuk memastikan semuanya berjalan, jalankan server lokal: 
bin/rails server


Atau singkatnya: 
rails s


Buka browser dan kunjungi: http://localhost:3000, jika muncul halaman Rails Welcome, artinya project berhasil dibuat.

5. Konfigurasi Database (Optional)

Jika menggunakan database lain (misalnya PostgreSQL atau MySQL), edit file config/database.yml sesuai kebutuhan, lalu jalankan: 
bin/rails db:create

6. Mulai Kembangkan Aplikasi

Sekarang kita siap membuat model, controller, dan view.

Ruby on Rails Scaffolding: Cara Cepat Membuat Aplikasi

Apa Itu Scaffolding di Rails?

Rails Scaffolding adalah fitur bawaan Rails yang secara otomatis menghasilkan kode dasar untuk operasi CRUD (Create, Read, Update, Delete). Dengan satu perintah, Rails akan membuat:

  • Model: representasi data di database.
  • Controller: logika untuk mengatur alur data dan request.
  • Views: tampilan HTML untuk menampilkan data.
  • Routes: jalur akses URL yang sudah siap dipakai.
  • Migration: struktur tabel di database.

Dengan scaffolding, kita bisa langsung memiliki aplikasi sederhana yang sudah bisa digunakan tanpa menulis semua file secara manual.

Cara Menggunakan Rails Scaffold

Misalnya, kita ingin membuat aplikasi sederhana untuk mengelola artikel. Jalankan perintah berikut di terminal:
bash rails generate scaffold Article title:string content:text

Perintah di atas akan membuat:

  • Model Article dengan field title (string) dan content (text).
  • Controller lengkap dengan method index, show, new, edit, create, update, destroy.
  • Views HTML/ERB untuk setiap aksi CRUD.
  • File migration untuk tabel articles.

Kemudian buka http://localhost:3000/articles di browser, dan kita sudah bisa langsung membuat, melihat, mengedit, dan menghapus artikel.

Kelebihan Scaffolding

  1. Cepat dan Praktis – Dalam hitungan menit sudah punya aplikasi CRUD.
  2. Belajar Struktur Rails – Cocok untuk memahami bagaimana model, view, dan controller bekerja bersama.
  3. Prototyping – Sangat berguna untuk membuat *prototype* aplikasi dengan cepat sebelum dikembangkan lebih jauh.

Kekurangan Scaffolding

  1. Kode Berlebihan – Rails membuat banyak kode default yang mungkin tidak semuanya dibutuhkan.
  2. Kurang Fleksibel – Struktur bawaan mungkin tidak sesuai dengan kebutuhan aplikasi nyata.

Referensi

Komentar

Postingan populer dari blog ini

Pengujian Perangkat Lunak

Pengujian perangkat lunak merupakan suatu investigasi yang dilakukan untuk mendapatkan informasi mengenai kualitas dari produk atau layanan yang sedang diuji. Pengujian perangkat lunak juga memberikan pandangan mengenai perangkat lunak secara obyektif dan independen, yang bermanfaat dalam operasional bisnis untuk memahami tingkat risiko pada implementasinya. Teknik-teknik pengujian mencakup, namun tidak terbatas pada, proses mengeksekusi suatu bagian program atau keseluruhan aplikasi dengan tujuan untuk menemukan “ bug ” perangkat lunak. Bug merupakan suatu kesalahan desain pada suatu perangkat keras komputer atau perangkat lunak komputer yang menyebabkan peralatan atau program itu tidak berfungsi semestinya. Bug umumnya lebih umum dalam dunia perangkat lunak dibandingkan dengan perangkat keras. Pengujian perangkat lunak merupakan suatu tahapan penting dalam pembangunan perangkat lunak. Pengujian dilakukan dengan cara mengevaluasi konfigurasi perangkat lunak yang terdiri dari s...

Alur Pembuatan Program

Seorang programmer tidak melakukan pembuatan dan pengkodean program secara begitu saja, namun mengikuti perencanaan  dan metodologi yang terstruktur yang memisahkan proses suatu aplikasi menjadi beberapa bagian. Berikut ini langkah – langkah sistematis  dasar dalam menyelesaikan permasalahan pemrograman : 1.  Mendefiniskan masalah 2.  Menganalisa dan membuat rumusan pemecahan masalah 3.  Desain Algoritma dan Representasi 4.  Pengkodean, Uji Coba dan pembuatan dokumentasi