ARSITEKTUR
WEB (3-Tier, N-Tier, Konsep MVC)
Apa itu Arsitektur dan Web ?
Terdiri dari
2 kata yaitu Arsitektur dan Web. Apa itu Arsitektur ? Berbicara
mengenai Arsitektur, mungkin akan terbayang oleh Anda sebuah gedung atau
bangunan yang dibangun oleh Arsitek (perancang). Nah jadi Arsitektur itu apa ?
Jadi Arsitektur itu adalah ilmu yang
digunakan untuk mendesain atau merancang sebuah karya agar menjadi lebih bagus
dan memiliki sebuah nilai dan keindahan.
Lalu bagaimana
dengan Web ? Web adalah kumpulan
dari beberapa halaman yang berisi informasi berupa audio, video, maupun teks
yang bersifat dinamis maupun statis, yang nantinya halaman-halaman tersebut
dapat dihubungkan (diberikan Hyperlink).
Arsitektur Web
Hal yang
dilakukan untuk mendesain web agar lebih tersusun, sehingga informasi didapat
lebih tepat dan lebih mudah untuk dicari. Arsitektur Web memiliki beberapa aspek
yang harus dipenuhi dalam membangun sebuah web yaitu : form, fungsi, navigasi,
interface, visual, interaksi, serta maksud dari form itu sendiri.
Dalam membangun
Arsitektur Web ada hal dasar yang harus dipertimbangkan, yaitu mengenai kebutuhan
dan batasan dari web itu sendiri, meliputi :
1. kebutuhan
fungsional (apa saja hal yang dapat dilakukan user terhadap web tersebut)
2. kebutuhan
kualitas (kualitas yang dimiliki web)
3. integrasi dengan
sistem yang ada
Beberapa kategori
dari arsitektur web yaitu :
1.
Aspek Layering
Merupakan Sistem Software yang distrukturkan dalam beberapa tier (tingkatan) untuk
mengimplementasikan prinsip “pemisahan urusan (konsen)”
2.
Aspek Data
Meliputi
data yang Terstruktur, misalnya : Relational DB, XML (eXtended Markup
Language). Dan data Tidak Terstruktur, misalnya : Konten Multimedia, Gambar,
audio, video
Sama seperti
pada bangunan, pada web juga terdapat komponen web dasar yang harus dipenuhi
dan dimiliki yaitu :
- Harus adanya
Client. Biasanya browser (user
agent). Dikendalikan oleh pengguna untuk
mengoperasikan aplikasi web.
- Harus memiliki
Firewall. Merupakan software yang mengatur komunikasi antara jaringan yang tidak aman, misalnya
: Internet. Dan jaringan aman, misalnya : LAN
perusahaan).
Yang difilter oleh aturan akses.
- Harus adanya
Proxy. Digunakan secara temporer untuk menyimpan halaman-halaman web dalam suatu cache.
- Harus dilengkapi
dengan Web Server. Merupakan software yang memproses permintaan client, dan mendukung
berbagai protokol Web seperti HTTP dan HTTPS.
- Memiliki Database Server, sebagai penyedia data dalam bentuk terstruktur, misalnya dalam
tabel-tabel.
- Memiliki Media Server, yang merupakan komponen
utama untuk content streaming dari data besar yang tidak terstruktur, misalnya
: audio atau video.
- Harus dilengkapi dengan Content Management Server. Mirip dengan
database server, menangani content
untuk melayani aplikasi.
- Dan terakhir harus memiliki Application server. Merupakan server yang berfungsi untuk melayani permintaan akses dari komputer
client.
Pada
Arsitektur Web, terdapat Pattern dan Framework. Apa maksud dari Pattern dan
Framework itu ?
Pattern adalah solusi umum yang digunakan kembali pada permasalahan umum
yang sering terjadi software design. Design pattern ini bukan merupakan design
final yang dapat ditransformasikan secara langsung kedalam kode. Tapi hanya
sebuah deskripsi atau template untuk mengetahui bagaimana cara menyelesaikan
permasalahan yang dapat digunakan pada berbagai macam situasi yang berbeda.
Design pattern dari object-oriented secara tipikal menunjukkan hubungan dan
interaksi antara kelas dan objek tanpa menspesifikasikan kelas atau objek dari
aplikasi final yang terlibat didalamnya.
Framework adalah sekumpulan fungsi, class, dan aturan-aturan. Framework
bersifat menyeluruh mengatur bagaimana kita membangun aplikasi. Framework
memungkinkan kita membangun aplikasi dengan lebih cepat karena sebagai
developer kita akan lebih memfokuskan pada pokok permasalahan sedangkan hal-hal
penting lainnya seperti koneksi database, form validation, GUI, dan security
umumnya telah disediakan oleh framework.
Berikut ini beberapa
bagian dari Arsitektur Web, yaitu :
1.
3-TIER
Sama seperti
namanya, 3-Tier artinya 3 tingkatan. Terdapat 3 tingkatan yang terlibat dalam
proses penggunaan web, yang mana ketiga tingkatan tersebut saling berhubungan
dengan tingkat selanjutnya.
3 tingkatan
tersebut adalah : client,server dan programming. Karena terdiri dari 3
tingkatan yang berbeda, sehingga tidak banyak perusahaan yang menggunakan
konsep 3-Tier. Hanya perusahaan besar yang menggunakan konsep tersebut. Karena dalam
membangun tingkatan-tingkatan tersebut membutuhkan banyak biaya. Sehingga hanya
perusahaan yang berkapasitas besar yang mampu menggunakannya.
Salah satu
aplikasi yang menggunakan 3-Tier yaitu : Java, IBM
Lapisan tersebut
terdiri atas :
1.
Client Layer : merupakan komponen yang berjalan pada komputer user
atau berfungsi sebagai interface user
2.
Server Layer : merupakan komponen yang berfungsi sebagai
penghubung antara client dengan database
3.
RDBMS Layer : merupakan kumpulan dari database dan data resource manager. RDBMS tidak bisa diakses
langsung oleh client jika tidak terkoneksi ke server
Walaupun biaya
cukup mahal, namun 3-Tier memiliki kelebihan yaitu :
-
Jika terjadi kesalahan pada salah satu lapisan, tidak mempengaruhi kesalahan
pada lapisan lain
- Penggunaan middleware mendukung efisiensi
query database dalam SQL di pakai untuk menangani pengambilan informasi dari
database.
Serta
keuntungan penggunaan 3-Tier yaitu :
-
Perubahan cukup dilakukan pada middle
tier, bukan aplikasi keseluruhan
-
Kemampuan untuk bereaksi terhadap perubahan bisnis dengan cepat, dengan cara
mengubah modul kode daripada mengubah keseluruhan aplikasi
- Biaya jangka panjang yang rendah
Dan
tidak meutup kemungkinan, bahwa 3-Tier juga memiliki Kerugian :
- Sulit untuk merancang, karena memiliki skala
yang cukup besar
-
Sulit untuk mengaturnya, karena
banyaknya layer yang dimilikinya dan dengan jangkauan yang cukup luas, maka
lebih sulit untuk mengaturnya. Karena jangkauan bisa antar wilayah maupun departement
- Biaya yang banyak sehingga lebih mahal. Biaya
banyak dikeluarkan karena factor dari 3 tingkatan operasi tadi. sehingga tiap
tingkatan membutuhkan PC yang banyak.
2. N-TIER
N=
banyak (lebih dari 3)
N-Tier
= banyak tingkatan/level
N_Tier
juga merupakan arsitektur client-server dimana presentasi,
pemrosesan aplikasi, dan data fungsi manajemen secara logis dipisahkan.
Terdapat
3 komponen pada N-Tier yang harus diketahui yaitu :
- Presentation Layer
Sebagai layer yang berada pada tingkat paling atas atau disebut juga user interface.
Fungsi utama sebagai penerjemah tugas-tugas dan hasil yang telah dikerjakan oleh layer sebelumnya.
- Bisnis Logic Layer / application layer
Bertugas
sebagai koordinat dari aplikasi, memproses perintah,
membuat keputusan logic dan evaluasi serta memperhitungkan performa. Berfungsi untuk
memindahkan dan memproses data antara 2 layer lainnya
- Data layer
Sebagai tempat menyimpan informasi dan mengolah data atau
file system. Informasi kemudian dikirim ke logical layer
dan dikirim kembali ke user.
Berikut
ini keuntungan yang diperoleh dari N-Tier :
- Mudah dalam
melakukan perubahan bussiness logic pada masa yang akan
datang.
- Bussiness logic yang mudah diimplementasikan dan dipelihara.
- Aplikasi client dapat mengakses berbagai tipe DBMS yang berbeda-beda secara
transparan.
- Dari segi skalabilitas, dapat dikembangankan
tanpa perlu banyak mengubah inti dari program tersebut.
- Dari segi portabilitas, dapat berjalan pada banyak sistem tanpa harus banyak
mengubah program tersebut.
Ada
kelebihan, tentunya pasti juga ada kekurangannya. Kekurangan dari N-Tier yaitu
:
- Sistem N-Tier yang mahal untuk development dan instalasinya. Dikarenakan perencanaan software pada 3-tier sangat kompleks.
- Memerlukan adaptasi yang semakin luas ruang lingkupnya.
- Rentang waktu lebih lama.
- Dalam suatu perusahaan, semakin besar perubahan sistem yang dilakukan, maka
akan semakin memerlukan adaptasi yang semakin luas ruang lingkupnya.
- Penggunaan memori komputer yang lebih besar.
3. Konsep MVC
Sebuah singkatan
dari Model View Controller (MVC).
- Model = data/database
- View =
tampilan untuk client
- Controller =
pemroses antara model dan view
Dari
pengertian diatas, dapat diambil kesimpulan bahwa MVC merupakan sebuah metode
atau konsep untuk membuat sebuah aplikasi, dan memisahkan data (Model) yang
terdapat didalamnya dari tampilan (View) yang akan diberikan kepada client yang
memberi request, yang nantinya akan diolah/diproses oleh pemroses
(Controller).
Arsitektur
MVC kebanyakan digunakan dalam aplikasi berbasis web
a.
Model
Model idientik
dengan data, yang berhubungan dengan database. Merupakan business logic. Pada model
ada beberapa aktivitas manipulasi data yang dilakukan seperti : insert, update,
delete, search. Model biasanya menerima validasi dari controller, dan
tidak dapat berhubungan dengan view secara langsung, harus melalui controller
sebagai penghubung.
Keuntungan dari Model yaitu :
-
Proses maintenance aplikasi
Adanya proses merespon perubahan
yang terjadi sehingga lebih terpelihara. Penempatan
detail data dan operasinya pada area yang telah ditentukan (Model), sehingga tidak tersebar ke seluruh lingkup
aplikasi.
-
Reusable Model
Penggunaan kembali aplikasi model oleh aplikasi lain yang disebabkan
adanya pemisah data dengan interface.
b.
View
Bagian yang
menangani presentation logic. Beris file template HTML, yang diatur oleh
controller. Bagian ini yang menerima dan merepresentasikan data atau mengatur
tampilan untuk user berupa halaman web. Dan tidak memiliki akse langsung
terhadap bagian model, harus melalui perantara controller.
Kelebihan dari
view yaitu :
- Memudahkan penggabungan
divisi desain dalam development team
- Ketersediaan
multiple interface dalam aplikasi
c.
Controller
Sebagai pemroses
dan yang menjembatani model dan view. Berfungsi menerima request dan data yang
diberikan user, kemudian akan ditentukan apa yang akan diproses oleh aplikasi
tersebut. Lalu akan dicek, apakah membutuhkan database ? jika ya, maka data
request akan dikirim ke model, lalu diproses oleh model. Dan hasilnya dikirim
lagi ke controller. Dan controller akan memparsing data kepada view, kemudian
view akan memberikan tampilan respon kepada client.
Kelebihan dari
controller :
- Komponen view
dapat didesain tanpa harus memperhatikan bagian lain
- Pemisahan yang
jelas antara presentation logic dan bussines logic.
Alur kerja
dari MVC yaitu :
1. Ketika User
melakukan request website ke web server, maka yang pertama sekali menerima
request adalah Controller.
2. Kemudian controller
akan melakukan pengecekkan, apakah memerlukan database atau tidak ? Jika ya,
maka rute selanjutnya adalah Model.
3. Pada model,
dilakukan pengolahan request User. Yang mana data diambil dari database. Setelah
didapat hasilnya, kemudian hasil diberikan kembali kepada controller.
4. Dan controller
akan memparsing hasil dari model tadi kedalam View untuk ditampilkan kepada
User.
Berikut ini
adalah keuntungan menggunakan MVC yaitu :
- Kode lebih
maintainable, karena dapat mengubah
salah satu bagian tanpa harus mengubah
bagian yang lain. Contoh, misalnya kita membuat aplikasi A yang memproses data
berformat XML namun kemudian kita diharuskan menggunakan data berformat JSON.
- Mempermudah proses
debugging, karena kita bisa memperkirakan
bagian mana yang bermasalah tanpa harus membongkar seluruh kode
yang sudah kita buat
Serta kekurangan
dari menggunakan MVC yaitu :
Adanya
peningkatan kompleksifitas sehingga pada aplikasi kecil yang tidak membutuhkan
loose coupling pada Model yang menjadi blok penghalang dalam pola MVC ini
sendiri.
Perbedaan antara Tier dan MVC
Tier adalah
arsitektur pembuatan web yang digambarkan dalam bentuk fisik atau hardware
membentuk lapisan-lapisan. Tier ini tampak jelas cara dan proses kerjanya,
karena secara fisik kelihatan
Sedangkan MVC
merupakan konsep atau metode yang digunakan dalam pembuatan web. Secara fisik
tidak tampak jelas atau lebih tepatnya disebut dengan “Konsep Programming”.
Sumber :
Presentasi kelompok
https://boed89.wordpress.com/2012/10/01/arsitektur-aplikasi-web/
ok mimn
BalasHapusalat cuci ultrasonic