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