Download - Belajar ruby on rails Sample
-
7/24/2019 Belajar ruby on rails Sample
1/36
-
7/24/2019 Belajar ruby on rails Sample
2/36
Acknowledgements
Pertama saya berterimakasih bla... bla... bla...
-
7/24/2019 Belajar ruby on rails Sample
3/36
Errata
-
7/24/2019 Belajar ruby on rails Sample
4/36
Feedback
-
7/24/2019 Belajar ruby on rails Sample
5/36
Translations
Jika ada yang berminat untuk meng-alih bahasakan buku ini ke bahasa selain Bahasa Indonesia,
silahkan kirimkan permintaan ke [email protected]
If you are interested to translate this book to a language other than Indonesian, please send a request
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/24/2019 Belajar ruby on rails Sample
6/36
Table of Contents
Acknoledgements....................................................................................................................................!
"rrata..........................................................................................................................................................#$eedback....................................................................................................................................................%&ranslations................................................................................................................................................'
&able of (ontents.......................................................................................................................................)
*. Pendahuluan.........................................................................................................................................*+
*.*. Apa itu uby on ails.................................................................................................................*+*.*.*. uby......................................................................................................................................*+
*.*.!. ails......................................................................................................................................**
*.!. e/arah ails.................................................................................................................................***.#. 0enapa 1enggunakan uby on ails..........................................................................................*!
*.%. Aplikasi23ebsite Apa a/a yang 1enggunakan ails..................................................................*#
*.'. Instalasi uby on ails.................................................................................................................*%*.'.*. Instalasi uby on ails pada 4buntu *%.+%..........................................................................*%
*.'.!. Instalasi uby on ails pada 3indos................................................................................*'
*.'.#. Instalasi uby on ails pada 1ac........................................................................................!+
!. uby.....................................................................................................................................................!!!.*. 0enapa 5arus Bela/ar uby &erlebih 6ahulu..............................................................................!!
!.!. $itur uby.....................................................................................................................................!!
!.#. uby "ditor..................................................................................................................................!#!.'. Interacti7e uby hell..................................................................................................................!%
!.). uby ynta8.................................................................................................................................!)
!.9. eser7ed 3ords............................................................................................................................!9
!.:. 1emberikan (omment pada uby...............................................................................................!:!.;. &ipe 6ata......................................................................................................................................!:
!.;.*. tring....................................................................................................................................!:!.;.!.
-
7/24/2019 Belajar ruby on rails Sample
7/36
!.**.9. prator ange.....................................................................................................................#;!.**.:. perator defined...............................................................................................................#;
!.**.;. perator . dan CC...........................................................................................................%+
!.*!. Blok dan Perulangan..................................................................................................................%+
!.*#. 1ethods......................................................................................................................................%!!.*%. (lass dan b/ect.........................................................................................................................%#
!.*%.*. (lass....................................................................................................................................%#
!.*%.!. b/ek..................................................................................................................................%%#. ails.....................................................................................................................................................%)
#.*. ails olusi tartup ampai dengan "nterprise...........................................................................%)
#.!. 1embuat Pro/ect ails.................................................................................................................%9#.#. truktur $ile2$older......................................................................................................................%:
#.%. 1=( Pattern.................................................................................................................................'*
#.%.*. 1odels..................................................................................................................................'#
#.%.*.*. Acti7e ecord................................................................................................................'##.%.*.!. Acti7e edord sebagai 1 $rameork.....................................................................'#
#.%.*.#. Aturan dan 0onfigurasi pada Acti7e ecord................................................................'%
#.%.*.%. Acti7e ecord Duery Interface.....................................................................................')#.%.!. =ies....................................................................................................................................';
#.%.!.*. ?ayouts..........................................................................................................................';
#.%.!.!. ender secara 6efault...................................................................................................';#.%.!.#. 1enggunakan ender...................................................................................................)*
#.%.!.#.*. ender
-
7/24/2019 Belajar ruby on rails Sample
8/36
'.%. oute............................................................................................................................................:+'.'. (ontroller.................................................................................................................................:+
'.). Action Inde8 dan =ie.................................................................................................................:+
'.9. Action $orm Insert dan =ie.......................................................................................................:!
'.:. Partial =ie $orm.........................................................................................................................:#'.;. Action Insert 6ata.........................................................................................................................:%
'.*+. Action $orm 4pdate dan =ie...................................................................................................:'
'.**. Action 5apus..............................................................................................................................:)). 1embuat Blog......................................................................................................................................::
).*. >ems.............................................................................................................................................::
).!. 1en/alankan 3eb er7er..............................................................................................................;+).#. 1engatur 6atabase.......................................................................................................................;*
).%. 1embuat Article caffold............................................................................................................;!
).'. 1en/alankan 1igrate...................................................................................................................;!
).). 1engganti 4?............................................................................................................................;!).9. 1emasukkan &itterBootstrap....................................................................................................;!
).:. 1engganti ?ayout 6efault...........................................................................................................;%
).;. 1enyesuaikan &ilan dengan &itterBootstrap......................................................................;)).;.*. Inde8.....................................................................................................................................;)
).;.!. $orm......................................................................................................................................;9
).*+. Autentikasi Pengguna 1enggunakan 6e7ise.............................................................................;:).**. 1embatasi Akses Pengun/ung ke 5alaman Admin..................................................................*+!
).*!. 1embuat 5alaman Admin untuk 4sers...................................................................................*+#
).*#. elasi Antar &abel....................................................................................................................*+').*%. 0eluar dari 5alaman Autentikasi.............................................................................................*+:
).*'. 1embuat 5alaman ?anding.....................................................................................................*+:
).*). 1embuat Partial =ie untuk 1emudahkan 1engelola 0ode.................................................*+;
).*9. Pagination.................................................................................................................................**#9. nippets..............................................................................................................................................**'
9.*. (ommandline.............................................................................................................................**'
9.*.*. 1embuat Pro/ect Baru........................................................................................................**'9.*.!. 1en/alankan er7er............................................................................................................**)
9.*.#. >enerate dan 6estroy..........................................................................................................**)
9.*.#.*. >enerate caffold........................................................................................................**)9.*.#.!. 6estroy caffold..........................................................................................................**9
9.*.#.#. >enerate (ontroller.....................................................................................................**:
9.*.#.%. 6estroy (ontroller.......................................................................................................**;
9.*.#.'. >enerate 1odel...........................................................................................................**;9.*.#.). ollback dan 6estroy 1odel......................................................................................*!+
9.!. 1enambahkan (ustom Action pada "&ful...........................................................................*!*
9.#. $orm...........................................................................................................................................*!!9.%. $orm A/a8...................................................................................................................................*!%
9.'. =alidasi 1enggunakan Acti7eecord........................................................................................*!'
9.'.*. presence..............................................................................................................................*!'9.'.!. 7alidatesEassociated............................................................................................................*!)
9.'.#. length..................................................................................................................................*!)
-
7/24/2019 Belajar ruby on rails Sample
9/36
9.'.%. uniFueness...........................................................................................................................*!99.). 4pload $ile.................................................................................................................................*!9
9.9. 1engirim "mail 1enggunakan Action 1ailer..........................................................................*#+
9.:. Basic Authentication dengan Bcrypt..........................................................................................*#!
9.;. 1engganti 4? 6efault pada 6e7ise........................................................................................*#'9.**. Basic Pagination.......................................................................................................................*#)
9.*!. 1embuat aplikasi satu halaman...............................................................................................*%+
9.*#. Pengenalan singkat ass...........................................................................................................*%+9.*#.*. =ariables...........................................................................................................................*%+
9.*#.!. em..................................................................................................*'9;.%. "rror GBundle "8ecG.....................................................................................................................*':
-
7/24/2019 Belajar ruby on rails Sample
10/36
1. Pendahuluan
1.1. Apa itu Ruby on Rails
uby on ails tidak dapat dipisahkan dengan uby sehingga untuk mengetahui uby on ails kita
terlebih dahulu harus bahas tentang uby.
1.1.1. Ruby
uby adalah sebuah bahasa pemrograman yang dibuat oleh Hukihiro 1atz 1atsumoto.
uby adalah bahasa program yang singkat, syntax yang rapi,syntax yang tidak memerlukan banyak
tanda baca yang berlebihan.
Hang sangat menarik dan kenapa kita /uga menggunakan uby adalah pernyataan 1atzs sebagai
berikut
Saya berbicara dengan teman tentang kemungkinan bahasa script menggunakan object-
oriented. Saya menguasai Perl, tetapi saya tidak menyukainya karena terlihat seperti bahasa
mainan. Object-oriented sepertinya sangat menjanjikan. Saya juga menguasai Python, tetapi
saya juga tidak menyukainya karena saya fikir Python bukanlah bahasa object-oriented yang
murni. Object-oriented pada Python terasa seperti fitur tambahan. Sebagai orang yang sangat
suka programming dan object-oriented dalam 15 tahun ini, saya sangat ingin bahasa script
object-oriented yang murni, mudah digunakan. Saya sudah mencari-carinya, saya tidakmenemukannya sehingga saya membuatnya sendiri.*
Alasan tersebut /uga merupakan salah satu alasan yang cukup kuat kenapa kita menggunakan uby
sebagai bahasa pemrograman.
* 6ikutip dan diter/emahkan dari httpC22thenestack.io2ruby-a-programmers-best-friend2
-
7/24/2019 Belajar ruby on rails Sample
11/36
1.1.!. Rails
ails dikembangkan oleh 6a7id 5einemeier 5ansson. uby on ails adalah sebuahframeworkaplikasi
berbasis eb yang ditulis dengan bahasa uby. uby on ails secara singkat disebut dengan ailsyang merupakan sebuah perpan/angan library dari bahasa uby.
ecara umum uby on ails merupakan kumpulan kode-kode yang ditambahkan pada program uby.
ecara teknis, kode-kode tersebut disebut sebagai paket yang lebih spesifik disebut uby>ems !yang
ditambahkan melalui sebuah perintah padashell.
uby on ails /uga dikenal dengan full stack framework yang menekankan pola pengembangan
softare, pengaturan konfigurasi yang sederhana KConvention over configuration2((L, /angan ulangi
kode Kon!t "epeat #our $elf26HL,%ctive "ecord dan model&view&controller K1=(L.
1.!. "e#arah Rails
6a7id 5einemeier 5ansson mengembangkan ails pada Basecamp, sebuah mana/emen proyek yang
sekarang telah men/adi sebuah perusahaan pembuat aplikasi eb. 5ansson pertama kali merilis ails
pada bulan Juli !++% sebagai open source, tetapi 5asson tidak membagikan codenya alaupun bersifat
open sampai bulan $ebruari tahun !++'. Pada bulan Agustus !++), framework ini membuat pencapaian
yang bagus ketika Apple mengumumkan baha mereka akan menyertakan uby on ails dengan 1ac
M 7*+.' N?eopardN, yang dirilis pada bulan ktober !++9.
ails 7ersi !.# dirilis pada tanggal *' 1aret !++; dengan pengembangan utama pada template, engine,
rack dan model form. 'emplate tersebut memungkinkan pengembang untuk menghasilkan aplikasi
dengan konfigurasi yang sederhana dan custom >ems. (ngine atau 7ersi rilis aplikasi tersebut
memberikan kemudahan bagi developer membuat aplikasi dengan codeyang dapat digunakan kembali
dengan menggunakan bantuan route, view dan model.
Pada tanggal !# 6esember !++:, 1erb, framework untuk aplikasi eb lainnya diluncurkan, dan uby
on ails mengumumkan akan beker/a sama dengan 1erb untuk mengembangkan framework men/adi
! uby>ems adalah sebuah paket manager untuk bahasa program uby untuk didistribusikan pada program ubydan uby libraryKsecara satuan hanya disebut sebagai gemL. uby>ems /uga merupakan sebuah toolsyang digunakan
untuk mengelola dan mendistribusikan gems.
-
7/24/2019 Belajar ruby on rails Sample
12/36
lebih baik dengan rilis aal ails #. Pada ails # inilah pertama kali diperkenalkan istilay 6H agar
developer tidak menulis code yang berulang dan ini men/adikan ails # sangat efektif dalam
pengembangansoftware. 1erb dan ails selan/utnya bergabung sebagai bagian dari ails #.+.
ails #.* dirilis pada #* Agustus !+**, menampilkan )igrasi database "eversible, %sset *ipeline,
$treaming, /Duery sebagai library Ja7acript default dan /uga memperkenalkan (offeecript dan ass
ke dalamframework stack.
ails #.! dirilis pada tanggal !+ Januari !+*! yang memungkinkan developer mendevelop aplikasi
dengan cepat dengan engine routing yang /uga dikenal sebagai +ourney engine, %utomatic uery
(xplain dan 'agged -ogging. ails #.!.8 adalah 7ersi terakhir yang mendukung uby *.:.9 dan ails
#.!.*! mendukung uby !.+.
ails %.+ dirilis pada !' Juni !+*# dengan memperkenalkan "usian oll Caching, 'urbolinks, -ive
$treaming serta %ctive "esource, %ctive "ecord bserver dan komponen lainnya yang dapat
dimasukkan kedalam >ems.
ails %.* dirilis pada tanggal : April !+*% dengan memperkenalkan $pring, /ariants, (num, )ailer
preview, dan secrets.yml.
ails %.! dirilis pada tanggal *; 6esember !+*% dengan memperkenalkan%ctive +ob, asynchronous
emails,%dequate "ecord, 0eb Console danforeign keys.
1.$. %enapa &enggunakan Ruby on Rails
Banyak de7eloper ails sebelumnya menggunakan bahasa P5P, Ja7a dan .
-
7/24/2019 Belajar ruby on rails Sample
13/36
beker/a dalam sebuah tim maupun pergantian anggota tim untuk pro/ect yang sama.
0ode yang singkat dan terstruktur dengan baik untuk dan aplikasi yang reliable.
uby adalah bahasa ob1ect&oriented yang dinamis. 6engan perpaduan framework ails, ini
dapat komunikasi aplikasi dengan database, membuat sitem template, menangani layout,
menangani a/a8 dan implementasi plugin yang sangat banyak dan mudah. 6engan kata lain,
ails mengeliminasi bagian yang membosankan pada softare development.
uby on ails berkembang sangat pesat dan ini sangat memudahkan mengakomodasi
perubahan kearah yang lebih sempurna.
0ode yang ditulis dalam bahasa uby sangat mudah dibaca dan dapat didokumentasikan
dengan mudah. 0on7ensi atau aturan penulisan code sangat /elas sehingga hal ini meningkatkan
produkti7itas alaupun ter/adi perubahan struktur developer.
uby on ails mempunyai lingkungan test danframeworkpengu/ian tersendiri.
?ibrary pada uby on ails sebagian besar adalah open source sehingga biaya lisensi dapat
ditekan.
elain itu, hal yang mempengaruhi kecepatan dalam pengembangan dengan uby on ails
adalah komunitas yang besar dan library yang terus bertambah setiap harinya.
1.'. Aplikasi()ebsite Apa "a#a yang &enggunakan Rails
Berikut adalah beberapa aplikasi2ebsite yang menggunakan ails
&itter >ithub Bloomberg lidehare ound(loud
-
7/24/2019 Belajar ruby on rails Sample
14/36
AirBogo Oendesk
elain ebsite diatas, menurut applizer.com, terdapat #'.9': ebsite yang dipastikan menggunakan
uby on ails dan sebanyak :.+)*.')% terindikasi menggunakan uby on ails.
1.*. +nstalasi Ruby on Rails
eperti telah kita ketahui pada sub bab diatas, uby adalah bahasa script dan ails adalahframework
untuk uby.
Proses instalasi uby dan ails dapat sa/a dipisahkan pada Bab uby dan Bab ails tetapi ini sangat
tidak efektif dan membuang aktu. 4ntuk itu pada sub-bab ini akan dibahas cara menginstall uby on
ails pada 4buntu *%.+%, 3indos dan 1ac.
1.*.1. +nstalasi Ruby on Rails pada ,buntu 1'.-'
(ara yang paling cepat dalam menginstal uby on ails adalah dengan menggunakan uby =ersion
1anager K=1L.
*. Paket =1 dikelola oleh 1ichal Papis. 4ntuk memulai menginstall =1, terlebih dahulu kita
harus menginstall mpapispublic keydengan commandberikut
-
7/24/2019 Belajar ruby on rails Sample
15/36
!. Ruby
!.1. %enapa arus /ela#ar Ruby Terlebih 0ahulu
Pada framework uby on ails, bahasa yang digunakan adalah bahasa uby sehingga sebelum
menggunakanframework uby on ails terlebih dahulu kita harus mengenal uby.
Berdasarkan pengalaman saya sebagai developer, menguasai hal dasar akan memberikan pemahaman
yang sangat baik untuk proses bela/ar selan/utnya. ehingga Bab ini harus Anda kuasai terlebih dahulu
sebelum beran/ak pada Bab berikutnya.
!.!. Fitur Ruby
uby adalah bahasa ob1ect oriented murni. uby mempunyai fitur yang hampir sama dengan
malltalk, Perl dan Python.
Berikut adalah fitur-fitur utama yang dimiliki oleh uby
*. uby adalah open source,
!. uby adalah bahasa script yang memerlukan interpreter,
#. uby adalah bahasa ob1ect&oriented,
%. uby adalah bahasa pada sisi ser7er atau lebih dikenal denganserver side programming,
'. uby dapat digunakan untuk menulis Common 2ateway Interface K(>IL,
). uby dapat disisipkan kedalam3ypertext )arkup -angage K5&1?L,
9. uby mempunyaisyntax yang ringkas dan mudah dimengerti,
:. uby mempunyaisyntax yang hampir sama dengan bahasa program lain seperti ( dan Perl,
-
7/24/2019 Belajar ruby on rails Sample
16/36
;. uby dapat digunakan untuk aplikasi berskala besar atau kecil. Aplikasi berskala besar yang
dibuat dengan uby dapat dikelola dengan mudah karena kode sudah terorganisir men/adi class
dan ob1ect.
*+. uby dapat digunakan untuk menger/akan aplikasi internet atau intranet,
**. uby dapat diinstal pada PIM dan 3indos,
*!. uby mendukung >4I tools &cl2&k, >&0, dan pen>?,
*#. uby dapat dengan mudah dikoneksikan dengan 6B!, 1yD?, racle, ybase dan D?ite,
*%. uby mempunyai banyak fungsi built&in yang dapat langsung digunakan padascript uby.
!.$. Ruby Editor
uby adalah bahasa pemrograman yang populer dan popularitasnya terus menan/ak sampai saat ini.
Banyak Integrated evelopment (nvironment KI6"L yang mendukung penulisan kode uby pada
berbagai macam sistem operasi.
Berikut adalah beberapa I6" untuk menulis kode uby berdasarkan sistem operasi
Pada ?inu8C
Aptana tudio
"macs ith uby mode and sense
>eany
>edit
=im ith 7im-ruby plugin and sense
uby1ine
ci&e
-
7/24/2019 Belajar ruby on rails Sample
17/36
-
7/24/2019 Belajar ruby on rails Sample
18/36
4ntuk penulisan lebih lan/ut, saya akan lebih banyak menulis kata terminal untuk meru/uk command
promptpada 3indos. ehingga /ika saya menulis terminal, bagi yang menggunakan sistem operasi
3indos silahkan men/alankan Command *rompt with "uby on "ails.
4ntuk melihat 7ersi irb yang digunakan, ketik perintah berikut pada terminal
nitza@ubuntu-RV:~$ irb -virb 0.9.6(09/06/30)
4ntuk men/alankanshell irb, cukup dengan mengetikkan perintah irb.
ekarang marilah kita buat sebuah aplikasi sederhana untuk lebih mengenal uby.
nitza@ubuntu-RV:~$ irbirb(main):001:0> puts "!# #r%"!# #r%&> niirb(main):00':0> !itnitza@ubuntu-RV:~$
4ntuk keluar dari irbshell, kita bisa mengetikkan perintah !it seperti diatas.
-
7/24/2019 Belajar ruby on rails Sample
19/36
!.2. Ruby "ynta3
Pada Bab ini kita akan membuatscriptyang disimpan pada sebuah file dan di/alankan melalui irb. $ile
uby mempunyai eksteksi .rb sehingga file-file yang akan kita buat akan diberi ekstensi .rb.
ebelum kita mulai membuat ubyscript, terlebih dahulu kita harus melihat konfigurasi uby yang
ada pada mesin kita dengan mengetik perintah berikut
nitza@ubuntu-RV:~/R#R##*$ irbirb(main):001:0> Rb+#n,i.rub&> "/#m!/nitza/.rb!nv/v!rsi#ns/'.1./bin/rub"irb(main):00':0>
4ntuk sistem operasi 3indos terlihat seperti berikut
+:it!s>irbirb(main):001:0>Rb+#n,i.rub&> 2+:/Raisnsta!r/Rub'.1.0/bin/rub.!!4irb(main):00':0>
Command yang diketik tersebut adalah untuk mengetahui lokasi interpreter pada sistem operasi yang
kita pakai. 6an sekarang kita tau lokasi interpreter uby untuk sistem operasi 4ni8 yaitu pada
/home/nita/.rben!/!ersions/".1.#/bin/ruby dan untuk sistem operasi 3indos adalah
$%/&ails'nstaller/&uby".1.(/bin/ruby.e)e .
?okasi tersebut berguna bagi aplikasi yang akan kita buat untuk diter/emahkan oleh interpreter yang
tepat.
ekarang kita akan melan/utkan membuat sebuah script sederhana yang diberi nama (1*app.rb.
Berikut adalahscript yang ada didalamnya
5/#m!/nitza/.rb!nv/v!rsi#ns/'.1./bin/rubputs "7!# #r%"
4ntuk sistem operasi 3indos tidak diharuskan menyertakan interpreter path pada baris pertama,
tetapi /ika disertakan aplikasi tidak akan men/alankannya. Jadi, untuk sistem operasi 3indos
-
7/24/2019 Belajar ruby on rails Sample
20/36
(1*app.rb hanya berisi satu baris seperti berikut#
puts "7!# #r%"
4ntuk men/alankan aplikasi tersebut, lakukan perintah berikut
nitza@ubuntu-RV:~/R#R##*$ rub 018app.rb7!# #r%nitza@ubuntu-RV:~/R#R##*$
Pada sistem operasi 3indos terlihat seperti berikut
+:it!s>rub 018app.rb7!# #r%
+:it!s>
!.4. Resered )ords
"eserved words adalah kata-kata yang tidak dapat digunakan sebagai identifier 7ariabel,function atau
label.
Berikut adalah kata-kata yang tidak dapat digunakan sebagai identifier
; ;< aias an% b!in
br!a* =as! =ass %!, %!,in!%
-
7/24/2019 Belajar ruby on rails Sample
21/36
-
7/24/2019 Belajar ruby on rails Sample
22/36
$. Rails
Bab berikut lebih banyak berisi tentang dokumentasi ails dan cara menggunakannya.
6alam mempela/ari aplikasi, developer mempunyai cara yang berbeda-beda. Ada yang lebih senang
membuat aplikasi sederhana terlebih dahulu baru membaca dokumentasi untuk memberikan pen/elasan
lebih dari apa yang telah dibuat.
Buku ini /uga telah melalui riset dengan diu/i coba pada beberapa orang developer. 5asilnya sebagian
besar developer menyatakan Rkurang nyambung ketika membaca dokumentasi sehingga dia membuat
aplikasi sederhana pada Bab % dan ' terlebih dahulu dan kembali lagi pada Bab ini untuk mempela/ari
lebih /auh.
Jika Anda adalah developer yang suka cara membuat aplikasi sederhana terlebih dahulu, silahkan
leati Bab ini, teruskan pada Bab %, Bab ' dan kembali lagi untuk membaca Bab ini.
$.1. Rails "olusi "tartup "ampai dengan Enterprise
ails sangat populer dikalangan startup karena sangat cepat dalam development dan butuh dana
pengembangan yang sedikit. edangkan untuk (nterprise, ails mampu diskala men/adi aplikasi yang
besar dan komplek karena codenya mudah dibaca dan mudah dikelola. Berikut adalah solusi yang
ditaarkan ails secara lebih rinci
4. %gility56lexibility
ails dengan syntax uby sangat ringkas dan mudah digunakan. ails sangat fleksibel untuk
dikembangkan dengan operating system apa sa/a, tools apa sa/a dan library yang dapat dibagi
pakai alaupun dengan aplikasi lainnya. (ara ini tentu sa/a dapat menghemat aktu, tenaga dan
uang.
!. Proses pengembangan yang sangat cepat
-
7/24/2019 Belajar ruby on rails Sample
23/36
6engan ails, semua diatur pada library yang dapat dipanggil dan digunakan secara langsung
sehingga proses development men/adi sangat cepat, terstruktur dan dapat di skalasi. 6engan hanya
menggunakan ails,scriptpenun/ang untuk aplikasi eb seperti 5&1?, ( dan Ja7ascript telah
digabungkan men/adi satu. 6isinilah peran full stack framework untuk mempercepat proses
pengembangan aplikasi.
#. ingan dan cepat
Pada aplikasi ails, sebelum 5&&P response diberikan kepada pengun/ung eb, terlebih dahulu
resource tersebut dicompile.
%. 0eamanan
ails mempunyai built&insecuritydan solusi yang elegan untuk mengamankanpassword dan data.
'. calability
6alam enterprise, scalability sangat penting seiring dengan pertumbuhan bisnis. Ada beberapa
pilihan scalabilitypada ails yaitu horizontal dan 7ertikal. kala horizontal seperti penambahan
perangkat ser7er, sementara skala 7ertikal yaitu dengan penambahan memori, disk atau
penggabungan kedua-duanya. ementara pada sisi softare, scalability dapat dilakukan dengan
cukup mudah karena peran bahasa berorientasi ob/ek, codeyang mudah dibaca, terstruktur danrapi karena telah diatur sedemikian rupa melalui convention.
$.!. &embuat Pro#ect Rails
etelah kita menginstal ails pada komputer local, selan/utnya kita akan coba membuat sebuah pro1ect
baru.
*ro1ectbaru pada ails dapat dibuat dengan perintah berikut
$ rais n! R#R+?
-
7/24/2019 Belajar ruby on rails Sample
24/36
5asil dari perintah diatas terlihat seperti berikut
nitza@ubuntu-RV:~/R#R##*$ rais n! R#R+? =r!at!
=r!at! R
-
7/24/2019 Belajar ruby on rails Sample
25/36
-
7/24/2019 Belajar ruby on rails Sample
26/36
'. &embuat Aplikasi dalam 1 &enit
Beberapa developerpartner ker/a saya sering mengeluh karena men/alankan2membuat aplikasi melalui
commandline. &etapi ketika mereka mengenal commandline lebih /auh, commandline sangat membantu
produkti7itas mereka dan mereka mulai suka dengan commandline.
1embuat aplikasi menggunakan ails akan terasa lebih mudah menggukan bantuan commandline.
5ampir semua commandline digunakan untuk generate aplikasi, mencari dependecy aplikasi,
menempatkan library dan perintah otomatisasi lainnya hanya dengan satu baris perintah.
Aplikasi ini dapat dibuat dalam satu menit dengan mengikuti poin-poin penting terutama pada bagian
commandline yang telah dituliskan pada pembahasan tanpa memperhatikan keterangan-keterangan
tambahan yang ada.
etelah beberapa kali membuat aplikasi, saya memastikan Anda /uga tertarik dan langsung ingat
commandline yang digunakan sehingga ini mempercepat dan memudahkan proses developemnt.
ilahkan ikuti langkah-langkah berikut untuk membuat aplikasi hanya dalam aktu * menit.
'.1. /uat Pro#ect
$ rais n! s=atit
'.!. 5alankan "erer
$ rais s
-
7/24/2019 Belajar ruby on rails Sample
27/36
'.$. /uka /rowser
Bukalah broser dan ketik 4?C http C22 localhost C#+++dan terlihat gambar seperti berikut
'.'. &embuat CR,0 dengan Perintah "caffold
http://localhost:3000/http://localhost:3000/http://localhost:3000/http://localhost:3000/http://localhost:3000/http://localhost:3000/ -
7/24/2019 Belajar ruby on rails Sample
28/36
*. &embuat CR,0 &anual
ecara umum, aplikasi yang menggunakan database tidak lebih dari operasi memasukkan data,membaca data, mengupdate data dan menghapus data. Istilah tersebut sangat populer dengan (reate
ead 4pdate and 6elete K(46L. ehingga dikatakan /ika seorang developersudah menguasai (46,
maka sebagian proses developmentsudah dikuasai.
1engetahui dasar pemrograman sama baiknya dengan kita mengetahui pembuatan aplikasi secara
otomatis melalui commandline. Ini memberikan kita pemahaman lebih dan /ika ter/adi troubleshooting
dalam development, maka kita tau cara mengatasinya.
6isini kita akan membahas tentang membuat (46 secara manual untuk lebih mengetahui bagaimana
sebenarnya alur ker/a (46.
*.1. Alur %er#a
4ntuk mempermudah penger/aan (46 secara manual, berikut adalah alur ker/a yang mudah untuk
diikuti. Alur ini tidak mengikat, tetapi bagus untuk dipraktekkan.
Berikut adalah gambar alur ker/a (46 pada ails.
-
7/24/2019 Belajar ruby on rails Sample
29/36
*.!. &odel
4ntuk membuat model, ketik perintah berikut
$ rais m#%! +ar nam!:strin bran%:strin %!s=ripti#n:t!t
Perintah tersebut akan membuat file migrate, model dan test.
Jika kita lupa memasukkan beberapafield, kita masih dapat menambahkannya secara manual. 1isalnya
kita lupa menambahkan harga, untuk menambahkannya bukalah file
db/migrate/*create*cars.rb dan tambahkan baris yang di high light
=ass +r!at!+ars J =tiv!R!=#r%::?irati#n %!, =an! =r!at!8tab! :=ars %# KtK t.strin :nam! t.strin :bran% t.t!t :%!s=ripti#n t.int!!r :ara
t.tim!stamps nu: ,as! !n% !n%!n%
-
7/24/2019 Belajar ruby on rails Sample
30/36
4. "nippets
4ntuk meningkatkan produkti7itas ker/a, kita akan membahas snippets yang penting pada proses
development ails.
4.1. Commandline
Beberapa commandline yang penting dalam development aplikasi ails adalah sebagai berikut
rais n! nama8pr#L!=t
rais !n!rat!
rais %b=#ns#!
rais s!rv!r
rais =#ns#!
ra*!
Commandline tersebut secara detail akan dibahas pada sub bab berikut
4.1.1. &embuat Pro#ect /aru
4ntuk membuatpro1ectbaru, format penulisannya adalah rais n! nama8pr#L!=t.
(ontoh penggunaannya seperti berikut
$ rais n! b#
-
7/24/2019 Belajar ruby on rails Sample
31/36
4.1.!. &en#alankan "erer
ails stack mengikutsertakan eb server 3"Brick didalamnya sehingga proses development akan
men/adi lebih cepat tanpa harus mengkonfigurasiserver.
4ntuk men/alankanserver, ketik perintah berikut
$ rais s
4.1.$. 6enerate dan 0estroy
4ntuk membuat segala sesuatu pada"ails pro1ect, umumnya menggunakan perintah !n!rat! atausecara singkat bisa langsung dituliskan dengan huruf sa/a.
-
7/24/2019 Belajar ruby on rails Sample
32/36
4.!. &enambahkan Custom Action pada RE"Tful
&erkadang action yang telah dibuat melalui perintah s=a,,#% tidak sesuai keinginan kita. Ada
kalanya kita kurangi atau ingin kita tambahkan beberapa route dan action agar sesuai dengan aplikasi
yang kita buat.
Jika pada sub-bab terdahulu kita hanya menggantipath 4?, maka pada sub-bab kali ini akan dibahas
cara menambahkan custom action atau menambahkanpath 4? melalui r#ut!yang dibuat dengan
perintah s=a,,#%.
ebagai contoh, kita mempunya "&ful articlesyang telah dihasilkan melalui perintah s=a,,#%
dimana secara default hanya akan menghasilkan : routeseperti berikut
elper P erb Path $ontroller0ction
articlesEpath >"& 2articlesK.CformatL articlesSinde8
P& 2articlesK.CformatL articlesScreate
neEarticleEpath >"& 2articles2neK.CformatL articlesSne
editEarticleEpath >"& 2
articles2Cid2editK.Cform
atL
articlesSedit
articleEpath >"& 2articles2CidK.CformatL articlesSsho
PA&(5 2articles2CidK.CformatL articlesSupdate
P4& 2articles2CidK.CformatL articlesSupdate
6"?"&" 2articles2CidK.CformatL articlesSdestroy
6an dalam contoh ini, kita ingin menambahkan path /articles/by*user dan
/articles/by*category/category*id .
4ntuk menambahkan path ini, bukalah file config/routes.rb dan tambahkan baris yang diberi high
-
7/24/2019 Belajar ruby on rails Sample
33/36
light
Rais.appi=ati#n.r#ut!s.%ra %# r!s#ur=!s :arti=!s %# =#!=ti#n %# !t Mb8us!rMN t#: Marti=!s5b8us!rM !t Mb8=at!#r/:i%MN t#: Marti=!s5b8=at!#rM !n% !n%!n%
6engan menambahkan beberap route tersebut, maka langkah selan/utnya adalah membuat action
b8us!r dan b8=at!#rpada app/!ie2s/articles*controller.rb dan /uga menambahkan view
yang berhubungan dengan action tersebut pada folder app/!ie2s.
-
7/24/2019 Belajar ruby on rails Sample
34/36
7. Troubleshooting
Prosesproblem solving untuk term sistem informasi mengacu kepada istilah troubleshooting. 6alam
troubleshooting tentunya terlebih dahulu ada trouble atau error pada sistem atau aplikasi baik itu pada
proses development atau pada prosesproduction.
(rror atau troublepada proses development atau produksi adalah hal yang a/ar.(rror tersebut dapat
dilihat melalui commandline langsung atau dapat dilihat melalui file log.
&roubleshooting pun pada setiap mesin dan lingkungan sistem operasi berbeda-beda. 1aka dari itu
troubleshooting secara umum yang ditemui pada proses de7elopment dan production ails akan
dibahas pada Bab ini.
7.1. )E/rick )eb "erer Tidak /er#alan
Jika kita men/alankan ser7er dengan perintah rais sdan menemukan errorseperti berikut
nitza@nitza-O!n#v#-0Es:~/b#$ rais s/var/ib/!ms/1.9.1/!ms/!!=Ls-'.E.'/ib/!!=Ls/runtim!s.rb:P:in Haut#%!t!=tM:+#u% n#t ,in% a Qava=ript runtim!. !! ttps://itub.=#m/rais/!!=Ls ,#r aist #, avaiab! runtim!s. (!=Q::Runtim!Cnavaiab!)A...B
4ntuk memperbaikinya, bukalah >emfile dan isikan baris berikut
!m Mt!rubra=!rMN :pat,#rms &> :rub
etelah menambahkan, /alankan perintah
$ bun%! up%at!$ bun%! insta
6an terkhir /alankan ser7er kembali dengan perintah rais s.
-
7/24/2019 Belajar ruby on rails Sample
35/36
7.!. &y"89 6agal di /undle pada ,buntu
0asus seperti gambar berikut ini cukup banyak ter/adi
0asus tersebut ter/adi karena library untuk 1yD? clientbelum terinstall.
4ntuk dapat menginstall 1yD? client, ikuti langkah berikut
$ su%# apt-!t -, insta
$ su%# apt-!t up%at!
$ su%# apt-!t insta ibmsD=i!nt-%!v
etelah selesai menginstall, /alankan kembali perintah bun%! insta.
7.$. Error %etika Penambahan 6em
Jika ter/adi error ketika menambahkan sebuah gem, lakukan langkah-langkah berikut
*. 1atikan ser7er dengan kombinasi tombol ctrl c
!. Jalankan bun%! insta
#. Jalankan ser7er dengan perintah rais s
-
7/24/2019 Belajar ruby on rails Sample
36/36
%. Jika masih ter/adi error, ulangi langkah diatas tetapi dengan mengganti perintah pada poin dua yaitu
bun%! up%at!
7.'. Error :/undle E3ec:
0etika development, terkadang muncul errorseperti gambar berikut
4ntuk mengatasi errorseperti terlihat diatas, /alankan bun%! up%at!
$ bun%! up%at!