Belajar Ruby on Rails: Seri Belajar Ruby on Rails Bagian 5
7 mins read

Belajar Ruby on Rails: Seri Belajar Ruby on Rails Bagian 5

Setelah sebelumnya memulai pembahasan mengenai apa itu Ruby, cara
menginstall Ruby on Rails, pengenalan bahasa Ruby, dan pengenalan Rails
framework, sekarang saatnya untuk memulai menggunakan Rails framework dengan
membuat aplikasi sederhana.

Aplikasi Manajemen Tugas Sederhana

Kali ini kita akan mencoba membuat aplikasi manajemen tugas sederhana.
Aplikasi ini berfungsi untuk mencatat tugas-tugas harian, baik tugas
sekolah ataupun tugas kuliah. 

Sebelum itu, mari kita pikirkan data apa yang dibutuhkan untuk membuat
aplikasi ini. Karena aplikasi ini berkaitan dengan mencatat tugas harian,
maka data yang dibutuhkan, yaitu:

  1. Nama Tugas
  2. Deskripsi tugas
  3. Kategori tugas
    Kategori ini dimaksudkan untuk menyimpan nama mata kuliah atau nama mata
    pelajaran di sekolah.
  4. Deadline (Tanggal dikumpulkan)

Setelah mengetahui data apa saja yang dibutuhkan, dapat disimpulkan bahwa
setidaknya aplikasi ini terdiri dari satu model, satu controller, dan
beberapa view. Lalu kita buat projectnya, dengan menjalankan perintah
berikut pada terminal atau command prompt.

versi mysqlite

$ rails new homework_management

versi postgresql

$ rails new homework_management -d postgresql

cd homework_management

Setelah membuat Rails project baru, yang harus dilakukan adalah membuat
controller, model, dan view-view yang dibutuhkan. Untuk membuat beberapa hal
tersebut, Rails menyediakan fitur yang sangat berguna untuk membuatnya
secara otomatis dan simpel.

Scaffold, Fitur Ajaib di Rails

Scaffold ?. Apa itu scaffold ?. Scaffold merupakan quick-way yang
disediakan oleh Rails untuk membuat controller, model, beserta view-view
yang berkaitan. Dengan scaffold controller, model, dan view-view tersebut
dapat dibuat dengan satu kali operasi.

$ rails generate scaffold Homework homework_name:text category:string deadline:date description:text

Perintah di atas, berarti membuat resource homework dan pada tabelnya
memiliki kolom:

  1. homework_name berupa text
  2. category berupa string (menyimpan mata kuliah atau mata
    pelajaran)
  3. deadline berupa date, dan
  4. description berupa text

Apa yang dihasilkan dari perintah tersebut ?



Kesimpulannya yang dihasilkan dari scaffold adalah:

  1. File migration
  2. Model
  3. Route
    Scaffold akan otomatis mendaftarkan URL yang sudah dibuat menjadi route
    resources
  4. Controller
  5. Dan pada view, yaitu folder homeworks di app/views,
    index.html.erb, edit.html.erb, show.html.erb,
    new.html.erb, dan _form.html.erb di folder
    app/views/homeworks

Setelah itu coba jalankan server, dengan cara mengetikkan perintah
berikut pada terminal atau command prompt.



Tampilan tersebut merupakan tampilan error pada Rails framework. Apa yang
terjadi ?. Yang terjadi adalah kita lupa untuk menjalankan file migrasi
yang dibuat oleh scaffold.



Perlu diingat meskipun kita menggunakan scaffold, tetapi untuk melakukan
migrasi file database, harus dilakukan sendiri dengan cara menjalankan
perintah berikut.

atau



Aplikasi sudah berjalan, namun bagaimana untuk melihat hasil dari scaffold
yang dibuat ?. Karena kita tadi membuat scaffold Homework, maka coba buka
url
http://localhost:3000/homeworks/, maka yang akan muncul pada browser adalah sebagai berikut.

 


Jika tampilan di atas muncul, itu artinya aplikasi manajemen tugas
sederhana sudah dibuat.

Hanya dengan menggunakan scaffold bagian-bagian terpenting yang saling
berhubungan dapat dibuat. Tetapi bagaimana penjelasannya ?. Bagaimana jika
membuatnya secara manual ?. Berikut penjelasannya.

Model

Saat men-generate scaffold Homework, otomatis akan membuat model
pada app/models/homework.rb. Pada model ini nantinya dapat digunakan
untuk melakukan validasi data yang akan masuk, dsb.

Untuk membuat model secara manual dapat dilakukan dengan cara

$ rails generate model Homework

Perintah tersebut otomatis membuat model dengan nama homework.rb di
app/models beserta file migrasi tablenya.

Controller

Saat men-generate scaffold Homework, otomatis akan membuat
controller pada app/controllers/homeworks_controller.rb. Selain itu,
saat menjalankan scaffold maka pada cotroller otomatis akan membuat
method-method berikut:

  1. index: menampilkan seluruh data pada tabel
  2. show: menampilkan data sesuai dengan parameter
  3. new: menampilkan halaman tambah data
  4. edit:  menampilkan halaman edit data
  5. create: proses menyimpan data
  6. update: proses mengubah data
  7. destroy: proses menghapus data

Untuk membuat controller secara manual dapat dilakukan dengan cara

$ rails generate controller Homework

Perintah tersebut otomatis membuat controller dengan nama
homework_controller.rb di app/controller. Jika ingin membuat
controller dan membuat view, dapat dilakukan dengan cara

$ rails generate controller Homework index

kata “index” pada perintah tersebut berarti membuat view pada
app/views/homework/index.html.erb

Migration

Dari awal pembahasan kita sudah sering menyebutkan file migrasi tabel. Apa
itu migrasi atau migration table di Ruby ?. Migration adalah fitur di Ruby
yang dibuat untuk membuat atau mengubah tabel di database secara mudah.
Migration ini merupakan salah satu yang akan dihasilkan ketika melakukan
scaffolding.

Untuk dapat membuat file migrasi, lakukan perintah berikut.

$ rails generate migration CreateHomeworks

File migrasi yang sudah dibuat akan disimpan pada folder db/migrate

Untuk dapat melakukan migrasi, lakukan perintah berikut.

atau

Route

Route pada Rails diibaratkan seperti jembatan yang berfungsi untuk menerima
request dari browser dan meneruskannya ke controller atau men-generate URL beserta action jika URL tersebut diakses.



Route di Rails application terdapat pada config/routes.rb. Ketika
menggunakan scaffold, maka scaffold akan otomatis mendaftarkan resource yang
dibuat di routes.rb. 

resource :homeworks artinya mengikat semua method yang ada pada
controller homework menjadi satu bagian, dan URL yang terbentuk dari
resource ini akan sesuai dengan nama methodnya. 

Contoh pada resources :homeworks terdapat method new, maka
URL yang dihasilkan menjadi /homeworks/new

Lalu dari hasil melakukan scaffolding URL apa yang dihasilkan ?. Untuk
mengetahui route apa saja yang terdaftar, dapat dilakukan dengan cara

HTTP Verb Path Controller#Action Fungsi
GET /homeworks homework#index menampilkan seluruh tugas
GET /homeworks/new homework#new menampilkan halaman untuk menambahkan data tugas harian
POST /homeworks homework#create berisi proses penambahan data
GET /homeworks/:id homework#show menampilkan data tugas yang lebih spesifik
GET /homeworks/:id/edit homework#edit menampilkan halaman yang berisi form untuk merubah data tugas
PATCH/PUT /homeworks/:id homework#update berisi proses merubah data tugas
DELETE /homeworks/:id homework#destroy berisi proses untuk menghapus data

Merubah Root Action

Untuk merubah root action ke sebuah method tertentu, misalnya root action
akan diubah ke method index pada controller
homework_controller.rb, dapat dilakukan dengan cara menambahkan
script berikut pada routes.rb

root "homeworks#index"

Happy Coding !!

Penting untuk diingat Rails memang menyediakan fitur scaffold untuk
memudahkan para pengembang, namun jangan sampai penggunaan scaffold tanpa
diimbangi pemahaman untuk membuat controller, model, migrasi, route, dan
view secara manual.

PakarPBN

A Private Blog Network (PBN) is a collection of websites that are controlled by a single individual or organization and used primarily to build backlinks to a “money site” in order to influence its ranking in search engines such as Google. The core idea behind a PBN is based on the importance of backlinks in Google’s ranking algorithm. Since Google views backlinks as signals of authority and trust, some website owners attempt to artificially create these signals through a controlled network of sites.

In a typical PBN setup, the owner acquires expired or aged domains that already have existing authority, backlinks, and history. These domains are rebuilt with new content and hosted separately, often using different IP addresses, hosting providers, themes, and ownership details to make them appear unrelated. Within the content published on these sites, links are strategically placed that point to the main website the owner wants to rank higher. By doing this, the owner attempts to pass link equity (also known as “link juice”) from the PBN sites to the target website.

The purpose of a PBN is to give the impression that the target website is naturally earning links from multiple independent sources. If done effectively, this can temporarily improve keyword rankings, increase organic visibility, and drive more traffic from search results.

Jasa Backlink

Download Anime Batch