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:
- Nama Tugas
- Deskripsi tugas
-
Kategori tugas
Kategori ini dimaksudkan untuk menyimpan nama mata kuliah atau nama mata pelajaran di sekolah. - 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.
$ rails new homework_management
versi postgresql
$ rails new homework_management -d postgresql
cd homework_management
$ rails db:create
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:
- homework_name berupa text
-
category berupa string (menyimpan mata kuliah atau mata
pelajaran)
- deadline berupa date, dan
- description berupa text
Apa yang dihasilkan dari perintah tersebut ?
- File migration
- Model
-
Route
Scaffold akan otomatis mendaftarkan URL yang sudah dibuat menjadi route resources - Controller
- 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.
$ rails s
Coba masukkan URL
http://localhost:3000/
dan yang akan muncul adalah tampilan seperti berikut.
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.
$ rake db:migrate
atau
$ rails db:migrate
Jalankan server kembali dan refresh halaman http://localhost:3000/.
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:
- index: menampilkan seluruh data pada tabel
- show: menampilkan data sesuai dengan parameter
- new: menampilkan halaman tambah data
- edit: menampilkan halaman edit data
- create: proses menyimpan data
- update: proses mengubah data
- 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.
$ rake db:migrate
atau
$ rails db:migrate
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
$ rails routes
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.
Fathara Annisa Azka |
C-aio Indonesia
Tidak ada komentar:
Posting Komentar