belajar ruby on rails sample

Upload: atma-latif

Post on 22-Feb-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

  • 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

    to [email protected]

    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 &ampilan 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!