5
Bab 2
Tinjauan Pustaka
2.1
Penelitian sebelumnya
Pada penelitian sebelumya yang berjudul “Analisis Performansi
Framework Prado Dan CakePHP Pada Aplikasi Web Ajax” dilakukan
pembahasan mengenai perbandingan performa dari framework Prado
dan CakePHP. Perbandingan dilakukan dengan aplikasi web dengan
proses CRUD (Creat, Read, Update, Delete). Dari hasil analisis
terlihat performa dari CakePHP jauh lebih baik daripada performa
dari framework Prado. Hal ini disebabkan karena framework Cake
PHP menggunakan kelas Helpers, sedangkan framework Prado
menggunakan komponen ActiveControl. (Firdaus, Maharani, 2008).
Penelitian lain yaitu berjudul ” Optimasi Aplikasi Web Berbasis Framework Symfony dengan Tweak View dan Tweak Chache”. Dalam
penelitian ini dilakukan pembahasan mengenai uji performa dari
framework Symfony. Uji performa dilakukan dengan2 tahap. Pertama
disimulasikan pada 2 bandwidth environment: dial-up 56 Kbps
(sampel slow connection), dan DSL/Cable 256 kbps (sampel average
connection). Simulasi bandwidth environment menggunakan addons
Throttle. Dan kedua dilakukan dengan keadaan browser bebas dari
cache sehingga tidak mempengaruhi hasil uji performa. Hasil uji
menunjukkan dengan adanya proses Tweak ini performa dari
framework menjadi cepat mencapai 99,26% dan transfer rate
Pada penelitian ini membahas tentang analisis framework
dengan mempergunakan Framework MVC3.0 dan Active Record.
Arsitektur MVC
MVC adalah singkatan dari Model, View, Controller, yang
merupakan sebuah arsitektur untuk membuat sebuah program.
Arsitektur ini menekankan kepada pembagian dari
komponen-komponen program menjadi tiga bagian utama yaitu Model, View, dan
Controller. Diagram dalam Gambar 2.1 memberikan gambaran
konseptual tentang arsitektur MVC (Suhanto, 2008).
Gambar 2.1 Model Arsitektur MVC (Suhanto, 2008)
Interaksi user dengan program digambarkan dengan arah
panah besar yang menuju View. Kemudian View memanggil
Controller. Selanjutnya Controller akan membuat atau memanipulasi
Model. Model ini akan diberikan kepada View untuk ditampilkan
kepada user. Dengan demikian tugas View adalah menangani tampilan
program dan interaksi antara user dengan program. Controller
melakukan koordinasi antara View dan Model. Sedangkan Model
permintaan user dalam sebuah interaksi. Tujuan dari pembagian
program ke dalam tiga bagian besar ini adalah untuk memisahkan
fokus perhatian, tanggung jawab, dan logic ke dalam bagian
masing-masing. View hanya fokus kepada tampilan dan menangani interaksi
dengan user. Model hanya fokus kepada manipulasi obyek-obyek dan
untuk memenuhi skenario sebuah proses bisnis. Sedangkan Controller
menerima input dari View, membuat dan memanipulasi Model, lalu
memberikan Model kepada View untuk ditampilkan ke user. Cara
mudah untuk memahami arsitektur MVC ini adalah dengan
menggunakan analogi organisasi bisnis dan peran yang terdapat di
dalamnya. Sebuah organisasi bisnis biasanya memiliki staf marketing,
mandor, dan staf operasional. Staf marketing melakukan segala upaya
untuk memikat calon pelanggan. Tugasnya adalah „menjual‟ produk
kepada calon pelanggan. View dalam MVC ibarat staf marketing ini.
Tugasnya adalah „menjual‟ dengan memberikan presentasi yang menarik kepada user. Peran lain yang terdapat dalam sebuah
organisasi bisnis adalah staf produksi yang bekerja di belakang layar
memenuhi target yang telah ditetapkan untuk bisa memenuhi
permintaan pelanggan. Pekerjaan staf produksi tidak tampak oleh
pelanggan itu sendiri. Staf produksi juga tidak bertanggung jawab
untuk langsung bertemu dengan pelanggan (Suhanto, 2008).
Model dalam MVC ibarat staf produksi. Tugasnya adalah
„bekerja‟ dengan memberikan segala daya dan upayanya untuk memberikan hasil. Peran terakhir dalam sebuah organisasi bisnis
adalah supervisor yang mengurusi manajemen antara staf marketing
dan staf produksi. Berdasarkan masukan dari staf marketing,
supervisor menetapkan target produksi yang kemudian akan
antara staf produksi dan staf marketing untuk melakukan koordinasi
sebelum produk-nya dipresentasikan kepada pelanggan. Setelah itu,
supervisor kemudian memerintahkan staf marketing untuk melakukan
presentasi produk kepada calon pelanggan (Suhanto, 2008).
Controller dalam MVC ibarat supervisor. Tugasnya adalah
melakukan manajemen dan koordinasi kerja antara View dan Model.
Hubungan ketiga komponen Model, View, dan Controller
menciptakan dependensi antar komponen. View bergantung kepada
Model, tetapi Model tidak bergantung kepada View. Designer View
perlu mengetahui bagaimana struktur data dari Model untuk bisa
menampilkan Model tersebut dengan benar dalam View, sebaliknya
developer yang mengembangkan Model tidak perlu tahu sama sekali
bagaimana bentuk tampilan dari Model tersebut. Controller dan View
saling bergantung satu sama lain. View memerlukan Controller untuk
„meneruskan‟ input dari user ke Model, sedangkan Controller
memerlukan View untuk meng-update tampilan setelah Model selesai
dengan tugasnya. Controller bergantung kepada Model karena perlu
memanggil Model dan memberikannya kepada View. Sebaliknya
Model tidak bergantung kepada Controller. Dengan demikian,
arsitektur MVC memberikan pemisahan tugas dan tanggung jawab
yang jelas antara Model, View, dan Controller. Sehingga developer
sesuai dengan keahliannya bisa memusatkan perhatian kepada logic
proses bisnis di dalam Model. Desain yang bagus dalam grafik dan
tampilan akan memikat user. Kedua komponen tersebut bisa bekerja
dengan harmonis yang diatur oleh Controller. Pemisahan yang jelas
ini juga akan memudahkan pengetesan terhadap masing-masing
2.3
Razor
View
Engine
Razor View Engine merupakan modul plugable yang
menerapkan konsep pemilihan sintak. Secara default ASP.NET MVC
saat ini menggunakan ekstensi .aspx atau .ascx sebagai master
template file ASP.NET Web Forms. Ada pula selain view engine
Razor, yaitu Spark dan NHaml (Guthrie, 2010).
Keunggulan yang dimiliki oleh Razor View Engine saat ini
antara lain :
Pengurangan dalam penulisan sintak, sehingga memudahkan proses pembuatan dan pengembangan aplikasi.
Pengkodean yang terstruktur, sehingga tidak mengganggu blok kode yang lainnya.
Perbedaan utama antara MVC versi sebelumnya (CodeNugget)
dengan MVC 3 yaitu terletak pada penulisan sintak. Sebagai contoh
untuk menampilkan teks “Hello Word” pada ASPX Code nugget
dibutuhkan kurang lebih 5 sintak yang membentuknya, yaitu <%=%>.
Sedangkan pada Razor ViewEngine sintak dengan menampilkan text
yang sama hanya dibutuhkan 1 karakter, yaitu @. Perbandingan
penulisan yang sangat signifikan inilah yang membuat Razor View
Engine lebih efisien digunakan dalam penulisan sintak untuk membuat
dan mengembangan aplikasi. Penulisan sintak dapat dilihat pada Kode
Kode Program 2.1 Menampilkan teks Hello dengan Code Nugget (Guthrie, 2010)
1. <h1>Code Nugget Example With .ASPX File</h1>
2. <h3>
3. Hello <%=name %> the year is <%=DateTime.Now.Year%>
4. </h3>
5. <p>Checkout
6. <a href="/Products/Details/<%=ProductID%>">This Product</a>
7. </p>
Kode Program 2.2 Menampilkan teks Hello dengan Razor View Engine
(Guthrie, 2010)
1. <h1>Razor Example</h1>
2. <h3>
3. Hello @name , the years is @DateTime.Now.Year
4. </h3>
5. <p>Checkout
6. <a href="/Products/Details/@ProductID">This Product</a>
7. </p>
2.4
Active
Record
Active record adalah salah satu pendekatan untuk membaca
data dari sebuah basis data. Sebuah tabel atau view dibungkus ke
dalam sebuah kelas sedemikian sehingga sebuah instansi obyek terikat
dengan satu baris tunggal dalam tabel. Setelah obyek dibuat, sebuah
baris baru ditambahkan pada tabel pada saat disimpan. Obyek-obyek
yang dimuat mendapatkan informasi tentang dirinya dari basis data,
ketika sebuah obyek diubah, baris yang berkaitan dalam tabel juga
diubah. Kelas pembungkus mengimplementasikan metode-metode
2.4.1 Active Record Pattern
Active Record Pattern adalah pola desain yang banyak
digunakan untuk aplikasi bentuk-over-data yang memiliki aturan dan
memiliki rasio 1:1 antara obyek bisnis dan tabel database.
Active Record Pattern mewakili satu baris di dalam tabel
database. Active Record Pattern paling ideal saat anda memilki
hubungan 1:1 antara properti obyek bisnis dan "table properti" dan
kebutuhan dari pemetaan data. Dalam hal sesuatu yang sederhana
seperti post (dan obyek domain lainnya) pada dasarnya hubungan 1:1.
Pada saat hubungan antara model domain (model obyek) dan model
relasional, kita tidak membutuhkan pemetaan data.
2.5
Properti
Properti menunjukkan kepada sesuatu yang biasanya dikenal
sebagai entitas dalam kaitannya dengan kepemilikan seseorang atau
sekelompok orang atas suatu hak eksklusif. Bentuk yang utama dari
properti ini adalah tanah, kekayaan pribadi (kepemilikan barang secara
fisik lainnya), dan kekayaan intelektual. Hak dari kepemilikan adalah
terkait dengan properti yang menjadikan sesuatu barang menjadi
"kepunyaan seseorang" baik pribadi maupun kelompok, menjamin si
pemilik atas haknya untuk melakukan segala suatu terhadap properti
sesuai dengan kehendaknya, baik untuk menggunakannya ataupun
tidak menggunakannya, untuk mengalihkan hak kepemilikannya