• Tidak ada hasil yang ditemukan

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]

Dokumen terkait