Intern Wellcode.io - Ruby & Ruby on Rails (ROR)

APA ITU RUBY ?

Ruby adalah bahasa pemrograman berorientasi objek yang dibuat oleh Yukihiro Matsumoto (Matz) pada tahun 2000. Ruby dapat digunakan di berbagai sistem operasi Linux, MacOs, dan Windows, dikembangkan secara open source. Setiap orang boleh menggunakan Ruby secara gratis, dan juga bebas untuk menduplikat, mendistribusikan bahkan melakukan perubahan / modify!

Ruby memiliki karakteristik unik secara teknis:

Jadi, ketika Anda mendefinisikan sebuah variabel, maka variabel tersebut akan menjadi object dengan tipe sesuai nilai yang kamu berikan, misalnya: Di Ruby, semua adalah sebuah objek. Setiap informasi dan kode bisa diberiproperty dan action. Pemrograman berorientasi objek memanggil property dengan nama variabel instan dan action, yang disebut sebagai metode. Pendekatan murni berorientasi objek terutama terlihat pada demonstrasi sedikit kode yang diberikan pada sebuah number. Ruby dianggap sebagai sebuah bahasa yang fleksibel, karena bagian-bagian dari Ruby bisa diubah-ubah dengan bebas. Bagian-bagian penting di Ruby bisa dihapus maupun didefinisikan ulang. Bagian-bagian yang sudah ada bisa ditambahkan. Ruby mencoba untuk tidak membatasi programmer.

RUBY ON RAILS (RoR)

Rails merupakan web framework yang dibuat dengan bahasa pemrograman Ruby, dikembangkan pertama kali oleh David Heinemeier Hansson pada juli 2004. Rails juga open source tapi dengan lisensi MIT (Lisensi MIT mengizinkan penggunaan kembali perangkat lunak dengan lisensi MIT menjadi perangkat lunak berpemilik asalkan menyediakan salinan semua persyaratan dan pemberitahuan hak cipta dari Lisensi MIT). Rails yang dioptimalkan untuk kesenangan programmer dan menopang produktivitas. Ruby on Rails telah dikembangkan pada tahun 2003 oleh David Heinemeier Hannson dan sejak saat itu diperluas oleh Rails Core Team dan lebih dari 3700 kontributor. Yang paling popular menggunakan Ruby on Rails adalah twitter, github, basecamp dan shopify.

Rails menggunakan konsep MVC, singkatan dari (Model View Controller), sehingga memudahkan programmer dalam melakukan manajemen codes. Silakan baca mengenai MVC .

Model

Mengatur hubungan antara objek dan database, di model kita dapat mengatur asosiasi antar tabel dan mengatur validasi atribut yang terdapat dalam tabel. Untuk melakukan query aplikasi di rails, lebih dianjurkan menggunakannya di model karena model lebih cepat dalam mengakses database.

Di model rails dapat mengatur asosiasi seperti has_many, contoh ini antara tabel ms_areas dan ms_user_areas memiliki relasi has many. Kita juga dapat menggunakan validasi kolom tabel di model dengan contoh validates_presence_of :name, hal ini berarti kolom nama tidak boleh kosong.

View

Merepresentasikan visual dari user interface, ditampilkan dapat dalam bentuk pdf, json, html, dll. View di trigger oleh controller, untuk default view dalam controller sendiri terbagi menjadi index, new, dan edit. Tetapi masih bisa di custom sendiri sesuai kebutuhan aplikasi.

Controller

Sebagai perantara antara model dengan view, menghubungkan data yang diambil dari model dan menampilkannya di view. Controller juga dapat melakukan query tetapi lebih lambat dibandingkan kita melakukan query di model.

Di ruby sebuah function di awali dengan def dan ditutup dengan end. Fungsi index untuk membuat fungsi aplikasi di bagian index aplikasi, fungsi new dibuat untuk menampilkan halaman create, lalu ketika user melakukan submit data maka fungsi itu akan dijalankan di def create, karena def new hanya sebatas menampilkan view newtidak untuk proses penyimpanan data. Fungsi show dibuat untuk menampilkan halaman show. Fungsi edit untuk menampilkan halaman edit, ketika melakukan edit data maka fungsi yang berjalan adalah update. Fungsi destroy digunakan untuk melakukan penghapusan data. Fungsi – fungsi ini merupakan standar code yang dimiliki rails.

Rails menekankan penggunaan DRY (Don’t Repeat Youreself), teknik ini menjelaskan untuk tidak menuliskan informasi yang secara berulang agar code tidak ambigu. Pada contoh sederhanda diatas terdapat before _action :set_ms_update_option, only: [:show, :edit, :update, :destroy], pada proses ini sebelum menjalankan fungsi di controller pada bagian show, edit, update, dan destroy perlu menjalankan fungsi set_ms_update_option terlebih dahulu. Pada fungsi set_ms_update_option terdapat code @ms_update _option = MsUpdateOption.find(params[:id]), sehingga setelah fungsi ini dijalankan lalu menjalankan fungsi yang lain di controller tidak perlu mendefine fungsi yang sama, ini yang dinamakan penggunaan dry pada rails.

PostgreSQL

Postgresql adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Peranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain.

Rails memiliki plugin yang dinamakan gem, biasanya programmer menggunakan plugin untuk membuat fungsi di web menjadi lebih powerful dan menarik. Proses instalasi plugin di ruby cukup mudah, untuk melihat plugin yang tersedia dapat dilihat di https://rubygems.org/ dan di install di project rails. Contoh plugin untuk mempermudah proses authentikasi pada aplikasi adalah gem devise, plugin ini sudah mengatur proses login, logout, dan authentikasi bahkan tampilannya sudah disediakan.

Ruby on Rails juga menyediakan dukungan lengkap diantaranya rilis terbaru, dokumentasi, presentasi, komunitas. Ruby sendiri juga crossplatform bisa berjalan pada Linux, Windows, dan Mac. Jika pembaca mendapat error saat coding, pembaca dapat masuk komunitas Ruby on Rails. Banyak programmer Ruby lainnya yang akan sukarela membantu pembaca dalam mempelajari Ruby on Rails. Disediakan mailing lists, yakni Ruby on Rails Talk dimana pengguna Ruby on Rails dapat mencari bantuan, mengumumkan project yang pembaca kembangkan dan mendiskusikan terkait framework dan komunitas.

Apa itu Gemfile?

Gemfile adalah file konfigurasi pada bahasa pemrograman ruby, semua dependensi gem atau kebanyakan orang menyebutnya adalah library atau perpustakaan yang dapat kita temukan di RubyGems. Siapaun dapat membuat, menambah, mengolah gem milik kalian bahkan kita juga dapat berkolaborasi di hosting git. Sedangkan pengoprasiannya dapat dilakukan dengan bundler dan perintahnya menggunakan bundle.

Alasan programmer banyak yang memakai ruby :

  1. Dirancang untuk memudahkan programmer melakukan konfigurasi karena Ruby on Rails menggunakan prinsip "Convention Over Configuration". Dengan prinsip ini programmer tidak usah terlalu repot untuk melakukan seting aplikasi seperti koneksi ke database, karena sudah ada mekanisme yang disediakan dan cukup mudah karena tinggal mengisi nama tipe server database yang digunakan ( mysql / oracle / sql server / postgresql / etc ), mengatur nama database, username, password dan host .
  2. Menggunakan prinsip "DRY ( Do not Repeat Yourself )", yang intinya adalah efisiensi dalam manajemen codes.
  3. Mempunyai komunitas yang besar, dengan 4855++ kontributor resmi dan ratusan ribu gems / plugin yang dibuat. Gem / Plugin bisa dikatakan sebagai "external library" yang bisa dimasukan ke aplikasi. Dengan besarnya komunitas ini, maka programmer memiliki banyak pilihan solusi ketika menghadapai permasalah. Kemudian, dengan banyaknya gems / plugins tersebut, programmer dapat lebih menghemat waktu development lagi karena tidak usah selalu membuat aplikasi dari awal, tapi bisa memanfaatkan gems /tersebut sesuai keperluan.
  4. Sudah terintegrasi dengan ORM library yang bernama ActiveRecord, sehingga untuk melakukan query ke database lebih mudah. Misalnya kita punya table users dan model User, maka untuk menampilkan semua data dari table users cukup dengan User.all