BAB II TINJAUAN PUSTAKA
2.1. Bahasa Pemrograman Ruby
2.1.9. Sistem Operasi Yang Didukung
2.2.1.7 Ruby On Rails
2.2.1.7.2 MVC (Model View Controller)
Kembali pada tahun 1979, Trygve Reenskaug dating dengan arsitektur
baru untuk pengembangan aplikasi. Pada perancangan ini aplikasi terdiri dari 3
komponen yaitu model, view dan controller.
Model bertanggung jawab untuk memelihara status aplikasi.
Kadang-kadang statusnya adalah selamanya dan akan disimpan diluar aplikasi yaitu
database. Suatu model lebih dari satu data untuk menyelenggarakan semua aturan
bisnis yang berlaku untuk data ity. Sebagai contoh jika diskon tidak diterapkan
pada pesanan misalnya 20% maka model akan melakukan batasan itu. Ini bisa
dilakukan dengan mangimplementasikan aturan bisnis di dalam model. Tidak ada
yang lain pada aplikasi yang dapat membuat data invalid. Model bertindak
sebagai penjaga pintu penampungan data.
View bertanggung jawab sebagai penghubung dengan user, biasanya
didasarkan data di dalam model. Sebagai contoh suatu toko online mempunyai
daftar produk untuk ditampilkan pada katalog. Daftar ini akan diakses dengan
model, tetapi akan menjadi view yang mengakses daftar dari model dan format
untuk pemakai terakhir. Walaupun view menyajikan user dengan berbagai inputan
data, view sendiri tidak pernah menangani masalah data tersebut. Cara kerja view
adalah akan dilaksanakan sekali ketika data ditampilkan. Mungkin akan ada
banyak view yang mengakses data model yang sama, tetapi untuk tujuan yang
berbeda. Dalam toko online, view menampilkan informasi produk pada suatu
halaman katalog dan view yang lain digunakan oleh administrator untuk
menambah dan mangubah produk.
Controller menerima kejadian dari dunia luar (biasanya inputan user),
saling berhubungan dengan model dan menampilkan view yang sesuai ke user.
Model,view controller bersama-sama membentuk suatu arsitektur yang
Gambar 2.1 Arsitektur (MVC) Model View Controller
Keterangan:
1) Browser mengirim permintaan
2) Controller berhubungan dengan model
3) Controller meminta view yang sesuai
4) View ditampilkan dalam browser
MVC awalnya diharapkan untuk aplikasi GUI konvensional, dimana
dalam pengembangannya ditemukan pemisah untuk mendorong sedikit
penggabungan. Yang pada akhirnya dibuat kode yang lebih mudah untuk ditulis
dan dipelihara. Masing-masing konsep atau tindakan dinyatakan pada suatu
tempat terkena. Menggunakan MVC seperti membangun skyscropper dengan
girders yang telah siap sebagai tempatnya. Itu menjadi lebih mudah untuk
mengolahnya dengan suatu struktur yang telah tersedia [7].
Pada dunia perangkat lunak sering mengabaikan gagasan baik dari masa
lalu ketika bertemu dengan masa depan. Ketika pengembangan pertama dimulai
dengan menghasilkan aplikasi web, ingin kembali untuk menulis program yang
mencampur presentasi, akses database, logika bisnis, even handling pada suatu
percobaan arsitektur untuk aplikasi web yang mencerminkan 20 tahun lalu dalam
MVC. Hasilnya adalah framework seperti web object,dan penampilan javaserver.
Rails menerapkan suatu struktur untuk aplikasi ini. Mengembangkan
model, view, controller dalam sebagai fungsi yang terpisah dan menggabungkan
bersama-sama ketika dieksekusi. Kelebihan Rails bahwa prosesnya didasarkan
pada penggunaan yang cerdas sehingga tidak harus menulis metadata untuk semua
pekerjaan. Ini adalah filosofi Rails yang dikenal dengan konsep Convention Over
Configuration.
Dalam aplikasi Rails, untuk pertamanya permintaan dikirim untuk
diteruskan. Akhirnya akan mengidentifikasikan suatu metode (dinamakan action
dalam Rails) suatu tempat di kode controller. Action mungkin akan
memperhatikan data yang diminta, itu bisa saling berhubungan dengan model dan
mungkin akan menyebabkan action lain untuk dilibatkan juga. Secepatnya action
menyiapkan informasi untuk view ketika membalas kembali kepada user.
Rails memegang suatu permintaan yang datang. Yang ditunjukkan pada
gambar di bawah ini. Dalam contoh ini, aplikasi sebelumnya menampilkan
halaman katalog produk dan user memilih tombol add to cart. Tombol ini
menghubungkan ke http//my.url/store/add_to_cart/123 dimana add_to_cart adalah
Gambar 2.2 Rails dan MVC
Komponen routing menerima permintaan yang datang dan segera memilih
bagian. Dalam kasus yang sederhana, akan diambil contoh untuk alur pertama,
toko adalah nama controller dan bagian kedua add_to_cart sebagai nama action
dan 123 adalah konvensi yang mengacu di dalam parameter internal yang
dinamakan id. Sebagai hasil dari semua analisis, router mengetahui harus memilih
metode add_to_cart pada controller yaitu kelas storecontroller [7].
Metode add_to_cart memegang permintaan user. Dalam hal ini, akan
ditemukan ketika user berbelanja (yang mana adalah suatu objek yang diatur oleh
model). Hal itu juga meminta model untuk menemukan informasi pada produk
dengan id 123. kemudian belanja untuk menambahkan suatu produk ke dalam
keranjangnya (lihat bagaimana model digunakan untuk keperluan jalur semua data
bisnis. Controller memberikan kepada apa yang harus dilakukan dan model
mengatahui bagaimana untuk melakukan itu).
Sekarang keranjang belanja memasukkan produk baru. Dapat dilihat pada
disusun terlebih dahulu sedemikian rupa sehingga view mempunyai akses ke
obyek cart dari model. Konvensi membantu menggabungkan bagian view dengan
memberi action.
Dengan mengikuti ketetapan konvensi akan ditemukan bahwa kode akan
menjadi lebih mudah untuk dikembangkan dan dipelihara. Nampak seperti suatu
perdagangan dengan relasi yang bagus dan teratur [7].
ACTIVE RECORD
Secara umum pada aplikasi ini semua informasi akan disimpan dalam
suatu relational database. Sistem akan menyimpan pesanan item dan detail dari
pelanggan kedalam tabel database.
Controller pada Rails adalah pusat logis dari aplikasi. Mengatur interaksi
antara user,view dan model. Bagaimanapun rails memegang kebanyakan dari
interaksi dibelakang layer. Kode yang ditulis berkonsentrasi pada fungsi level
aplikasi. Ini membuat kode controller Rails sangat mudah untuk dikembangkan
dan dipelihara [7] .
Modul ActionPack
Modul ini dibagi menjadi dua bagian, yaitu ActionController dan
ActionView. ActionController memegang peranan penting dalam suatu aplikasi
web. Fungsi dari modul ini adalah mengontrol permintaan dari browser kemudian
berkomunikasi dengan model untuk mendapatkan data lalu mengirimkan view
yang bersesuaian dengan permintaan dari browser. Bisa saja controller langsung
mengirimkan view jika permintaan dari browser tidak berhubungan dengan
dengan model. ActionView menangani isi dari halaman-halaman web yang akan
ditampilkan ke browser client [7].
Modul ActionMailer
Modul ini memfasilitasi programmer web untuk mengirimkan e-mail dari
sistem yang dibuat, ke alamat e-mail yang dituju atau menerima e-mail.
Kegunaannya adalah antara lain, untuk notifikasi user ketika menjadi anggota
sebuah aplikasi web.[7]